AutoMapper忽略NULL值

时间:2017-02-01 06:16:10

标签: automapper

关于如何在最新的更新AutoMapper中实现这一点似乎存在很多困惑。我使用AutoMapper 5.2.0,在Github问题和SO上找到的旧解决方案无效。

如果源值为null或为空(对于字符串)或0(对于int),我的要求是忽略映射

1 个答案:

答案 0 :(得分:2)

尝试使用此扩展名检查是否为null:

public static void MapFromIfNotNull<TSource, TDestination, TProperty>(
        this IMemberConfigurationExpression<TSource, TDestination, TProperty> map, 
        Expression<Func<TSource, object>> selector)
        {
            var function = selector.Compile();
            map.Condition(source => function(source) != null);
            map.MapFrom(selector);
        }

然后使用

CreateMap<EmployeeDTO, Employee>()
   .ForMember(dest => dest.MOBILE, opts => opts.MapFromIfNotNull(src => src.MobilePhone))