2017-02-01 4 views
0

Кажется, есть много путаницы относительно того, как достичь этого в последнем обновлении AutoMapper. Я использую AutoMapper 5.2.0, и старые решения, найденные в Github Issues, и SO не работают.AutoMapper игнорировать значения NULL

Мое требование игнорировать отображение, если исходное значение равно нулю или пусто (для строк) или 0 (для междунар)

ответ

1

Попробуйте использовать это расширение для проверки, если нуль:

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)) 
Смежные вопросы