快速提问 - 以下是什么区别?
这个有效:
CreateMap<OrderResult, OrderViewModel>()
.ForMember(x => x.SoldTo, opt => opt.Ignore())
.ForMember(x => x.ShipTo, opt => opt.Ignore())
.ForMember(x => x.ShowPlaceOrder, opt => opt.MapFrom(c => c.Messages.Count == 0));
我希望这个除了“Mapper.AssertConfigurationIsValid();”之外几乎可以做同样的事情。在这个上没有说“ShowPlaceOrder”没有映射。
CreateMap<OrderResult, OrderViewModel>()
.ForMember(x => x.SoldTo, opt => opt.Ignore())
.ForMember(x => x.ShipTo, opt => opt.Ignore())
.ForMember(x => x.ShowPlaceOrder, opt => opt.Condition(c => c.Messages.Count == 0));
由于 乔
答案 0 :(得分:3)
如果条件为真,您仍需要提供ShowPlaceOrder
的来源。 “Condition”方法采用谓词来决定是否应该完成映射。我认为你的第一个例子更清楚。