Automapper 前置条件,如果 src 值为 0 则映射 null

Automapper preconditition, if src value is 0 then map null

你好,我有一个简单的问题,我创建了一个映射器配置,如下所示:

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 或 null 的值(ApplicationId 可以为 null)时,它会起作用,但我想要一些东西,如果源值为 0,则将值设置为 null。

已尝试 opt.MapFrom(src => null);,但无法正常工作。如何在autommaper中解决这个问题。

就像你一样

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