您好,我有一个简单的问题,我创建了一个映射器配置,如下所示:
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 可为空)时,它会起作用,但我想要的东西是,如果源值为 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 ))
关于c# - 自动映射器前提条件,如果 src 值为 0,则映射 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59949003/