Кажется, это такая распространенная проблема 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 как есть).
Опять же, я потратил часы на изучение документации и примеров, но явно упускаю это .. извините, если это очевидно: - (