Конфигурация AutomapperВыражение Условие - PullRequest
0 голосов
/ 11 января 2011

Быстрый вопрос - какая разница в следующем?

Это работает:

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 Ответ

3 голосов
/ 18 января 2011

Вам все еще нужно указать источник для ShowPlaceOrder, если условие выполнено.Метод «Condition» использует предикат, чтобы решить, следует ли выполнять сопоставление.Я думаю, что ваш первый пример более ясен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...