我们如何忽略Nullable类型的源属性(例如int?)

时间:2019-05-30 18:19:30

标签: c# .net mapping domain-driven-design automapper

这似乎是一个常见的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以不映射任何可为空的属性。

再次,我花了数小时来搜索文档和示例,但是很明显缺少它。.很抱歉,如果它很明显:-(

0 个答案:

没有答案