Automapper ConfigurationExpression条件

时间:2011-01-11 18:12:23

标签: automapper

快速提问 - 以下是什么区别?

这个有效:

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));

由于 乔

1 个答案:

答案 0 :(得分:3)

如果条件为真,您仍需要提供ShowPlaceOrder的来源。 “Condition”方法采用谓词来决定是否应该完成映射。我认为你的第一个例子更清楚。