关于如何在最新的更新AutoMapper中实现这一点似乎存在很多困惑。我使用AutoMapper 5.2.0,在Github问题和SO上找到的旧解决方案无效。
如果源值为null或为空(对于字符串)或0(对于int),我的要求是忽略映射
答案 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))