这似乎是一个常见的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使用可为空的字段来防止用户发送超出要求的字段,问题是:
当HasValue == false(即,将Destination.price的当前值保持原样)时,我们如何全局配置Automapper 8.1以不映射任何可为空的属性。
再次,我花了数小时来搜索文档和示例,但是很明显缺少它。.很抱歉,如果它很明显:-(