Automapper preconditition, если значение sr c равно 0, тогда нуль карты - PullRequest
2 голосов
/ 28 января 2020

Привет, у меня быстрый вопрос. Я создал конфигурацию mapper, которая выглядит следующим образом:

CreateMap<ModifySystem, Entities.System>()
    .ForMember(dest => dest.IpAddress, opt => opt.MapFrom(src => IPAddress.Parse(src.IpAddress)))
    .ForMember(dest => dest.ApplicationId, opt =>
    {
        opt.PreCondition(src => src.ApplicationId > 0 || src.ApplicationId == null);
        opt.MapFrom(src => src.ApplicationId);
    })
    .ForMember(dest => dest.Id, opts => opts.Ignore());

Хорошо, это работает, когда я получаю значение больше 0 или ноль (ApplicationId обнуляется), но я хочу что-то что если исходное значение будет 0, тогда установите значение как нулевое.

Tried opt.MapFrom(src => null);, но оно не работает должным образом. Как решить эту проблему в автомапер.

1 Ответ

2 голосов
/ 28 января 2020

Как у вас есть

.ForMember(dest => dest.IpAddress, opt => opt.MapFrom(src => IPAddress.Parse(src.IpAddress)))

Вы можете сделать что-то вроде следующего:

.ForMember(dest => dest.ApplicationId, opt => opt.MapFrom(src => src.ApplicationId == null || src.ApplicationId == 0 ? null : src.ApplicationId ))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...