我有一个映射器,我需要执行条件映射,条件是,仅当目标属性值为null时,才将值从源映射到目标。我该怎么做?
.ForMember(o => o.EmployeeId, opt => opt.MapFrom(u => u.EmployeeId))
我只想为EmployeeId赋值,否则就没有值。
答案 0 :(得分:0)
应该为您提供帮助。
CreateMap<YOURMODEL,YOURMODEL2>()
.ForMember(dest => dest.EmployeeId, opt => {
opt.PreCondition(src => src.EmployeeId != null);
opt.MapFrom(src => src.EmployeeId);
其他方式
CreateMap<SourceClass, TargetClass>()
.ForMember(d => d.EmployeeId, o => o.MapFrom(s => s.EmployeeId))
.ForAllMembers(o => o.Condition((src, dest, value) => value != null));
答案 1 :(得分:0)
NULL
IMemberConfigurationExpression
的方法具有需要IDestination .MapFrom()
的重载。在映射功能中,您可以检查目标对象。
示例:
void MapFrom<TResult>(Func<TSource, TDestination, TResult> mappingFunction);