仅在目标对象在Automapper中没有值时如何映射

时间:2019-11-24 16:01:26

标签: c# .net automapper

我有一个映射器,我需要执行条件映射,条件是,仅当目标属性值为null时,才将值从源映射到目标。我该怎么做?

.ForMember(o => o.EmployeeId, opt => opt.MapFrom(u => u.EmployeeId))

我只想为EmployeeId赋值,否则就没有值。

2 个答案:

答案 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);