Как мы игнорируем исходные свойства типов Nullable (таких как int?) - PullRequest
0 голосов
/ 30 мая 2019

Кажется, это такая распространенная проблема Automapper, что я чувствую, что 100%, должно быть, упускаю ее, даже если я искал сеть. Если у меня есть исходный и целевой объекты:

class Source {
   int? price { get; set; }
}

class Destination {
   int price { get;set; }
}

CreateMap<Source, Destination>()
     .ForAllMembers(o => o.Condition((source, destination, member) => 
              (member != null) ));

Не будет работать, потому что свойство nullable по-прежнему будет использовать значение по умолчанию для этого типа, что означает, что Destination.price каждый раз устанавливается в 0 , даже когда Source.price.HasValue == false

Учитывая, что большинство DTO используют пустые поля, чтобы запретить пользователям отправлять больше полей, чем требуется, вопрос:

Как глобально настроить Automapper 8.1, чтобы НЕ отображать никакие обнуляемые свойства, когда HasValue == false (т.е. оставить текущее значение Destination.price как есть).

Опять же, я потратил часы на изучение документации и примеров, но явно упускаю это .. извините, если это очевидно: - (

...