c# - 在映射中保留 null - 不要为类型创建默认值

标签 c# .net automapper

如何让 AutoMapper 从源头中保留 null?

new MapperConfiguration(cfg => cfg.CreateMap<MyModel, MyModel>()
    .ForMember(m => m.prop1, opt => opt.AllowNull())
    .ForMember(m => m.prop1, opt => opt.NullSubstitute(null))
    .ForMember(m => m.prop1, opt => opt.MapFrom(s => s.prop1))
).CreateMapper();

prop1 可以为空,例如字符串[]

我总是得到类型的默认值。

最佳答案

默认情况下不允许

Null 目标值和 null 集合。您可以在配置中设置它:

configuration.AllowNullCollections = true;
configuration.AllowNullDestinationValues = true;

您也可以通过 AfterMap 配置强制执行此操作:

new MapperConfiguration(cfg => cfg.CreateMap<MyModel, MyModel>()
   .AfterMap( (s,d) => d.prop1 = s.prop1 == null ? null : d.prop1 );

关于c# - 在映射中保留 null - 不要为类型创建默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55688812/

相关文章:

c# - 如何使用 AutoMapper 和 OData 扩展子级别?

c# - 新版本的 Automapper 在定义子类型映射时抛出强制转换异常

c# - Json.Net JObject 的 Automapper 反射错误

c# - MVC 动态导航栏

c# - 如何使用 Microsoft.Office.Interop.MSProject 为项目添加自定义日历

C# WPF - 只允许某些文件扩展名

.net - 在 C# 中的面板上拖放时移动控件

c# - 有没有办法将 Console.Write 的结果连续镜像到集合(数组、列表等)?

c# - DateTime.date 给我一个完整的日期为什么?

c# - GUID 是(临时)加密的好 key 吗?