假设我有这些映射:Automapper合并/合并映射
var mapping1 = Mapper.CreateMap<Order, BaseDto>()
.ForMember(o => o.Referrer, m => m.Ignore());
var mapping2 = Mapper.CreateMap<Order, DetailDto>()
.ForMember(o => o.Price, m => m.Ignore());
var mapping3 = Mapper.CreateMap<Order, UpdateDto>()
.ForMember(o => o.Temp, m => m.Ignore());
的DTO的继承:
DetailDto : BaseDto
UpdateDto : BaseDto
有什么办法合并/组合第一映射到mapping2和mapping3?
事情是这样的:
var mapping1 = Mapper.CreateMap<Order, BaseDto>()
.ForMember(o => o.Referrer, m => m.Ignore());
var mapping2 = Mapper.CreateMap<Order, DetailDto>()
.Import(mapping1);
.ForMember(o => o.Price, m => m.Ignore());
var mapping3 = Mapper.CreateMap<Order, UpdateDto>()
.Import(mapping1);
.ForMember(o => o.Temp, m => m.Ignore());
似乎是.Include
功能并没有做我想做的是以下不工作:
var mapping1 = Mapper.CreateMap<Order, BaseDto>()
.Include<Order, DetailDto>()
.Include<Order, UpdateDto>()
.ForMember(o => o.Referrer, m => m.Ignore());
var mapping2 = Mapper.CreateMap<Order, DetailDto>()
.ForMember(o => o.Price, m => m.Ignore());
var mapping3 = Mapper.CreateMap<Order, UpdateDto>()
.ForMember(o => o.Temp, m => m.Ignore());
更新:编辑问题更加具体
得出每种类型为什么你就不能这样做的:var mapping1 = Mapper.CreateMap <订单,OrderDto >() .ForMember(o => o.Referrer,m => m.Ignore())。ForMember(o => o.Price,m => m.Ignore());? – Icarus
@伊卡洛斯它有点复杂,因为映射有不同的目的地。我更新了这个问题。 – Dennis