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 ))
你好,我有一个简单的问题,我创建了一个映射器配置,如下所示:
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 ))