3
public class SourceRoot
{
...
public Organisation Organisation { get; set; }
...
}
public class Organisation
{
public long? Id { get; set; }
public string Name { get; set; }
public string Currency { get; set; }
public double SupplementaryAmount { get; set; }
public decimal BaseConversionRate { get; set; }
}
和目的地的源模型定義爲:
public class DestinationRoot
{
...
public Organisation Organisation { get; set; }
public ContributesTo ContributesTo { get; set; }
}
public class Organisation
{
public long? Id { get; set; }
public string Name { get; set; }
}
public class ContributesTo
{
public string Currency { get; set; }
public double SupplementaryAmount { get; set; }
public decimal BaseConversionRate { get; set; }
}
我想從SourceRoot
映射到DestinationRoot
將源Organisation
的副本添加到目標Organisation
和ContributesTo
。
我有AutoMapper以下配置:
public static class AutoMapperConfig
{
public static MapperConfiguration RegisterMappings()
{
var config = new MapperConfiguration(cfg =>
{
cfg.AddProfile<MyProfile>();
});
return config;
}
}
public class MyProfile : Profile
{
protected override void Configure()
{
this.CreateMap<SourceRoot, DestinationRoot>();
this.CreateMap<Source.Organisation, Destination.Organisation>();
this.CreateMap<Source.Organisation, Destination.ContributesTo>();
}
}
使用這個當前配置文件Organisation
被映射但ContributesTo
出來爲空。 請注意,我使用AutoMapper的4.2版本,其中靜態方法已被棄用,因此試圖擺脫這一點。通常我會這樣做:
Mapper.CreateMap<SourceRoot, DestinationRoot>()
.ForMember(d => d.ContributesTo, opt => opt.MapFrom(s=> Mapper.Map<ContributesTo>(s.Organisation)));
但是,這不建議(引用靜態方法)。有沒有其他的方法來做到這一點?
感謝
當答案非常簡單時,這就是你努力尋找解決方案時的難點之一(就像我試圖爲它製作地圖一樣)!感謝那! – ADringer