Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用automapper更新目标对象,并将可为null的类型属性值设置为null_C#_Automapper_Automapper 2 - Fatal编程技术网

C# 使用automapper更新目标对象,并将可为null的类型属性值设置为null

C# 使用automapper更新目标对象,并将可为null的类型属性值设置为null,c#,automapper,automapper-2,C#,Automapper,Automapper 2,似乎源中的可空类型属性被忽略,而不是复制到目标 考虑以下类别: 公共类源代码 { 公共int?测试{get;set;} } 公务舱目的地 { 公共int?测试{get;set;} } 映射: Mapper.CreateMap(); var source=new source(){Test=1}; var destination=新目的地(); Mapper.Map(源、目的地); Assert.AreEqual(source.Test、destination.Test)//真的 source.

似乎源中的可空类型属性被忽略,而不是复制到目标

考虑以下类别:

公共类源代码
{
公共int?测试{get;set;}
}
公务舱目的地
{
公共int?测试{get;set;}
}
映射:

Mapper.CreateMap();
var source=new source(){Test=1};
var destination=新目的地();
Mapper.Map(源、目的地);
Assert.AreEqual(source.Test、destination.Test)//真的
source.Test=null;
Mapper.Map(源、目的地);
Assert.AreEqual(source.Test、destination.Test)//false(null,1)
当我使用:

Mapper.CreateMap()
.ForMember(m=>m.Test,o=>o.ResolveUsing(m=>m.Test));

但我不想按属性设置,你能全局设置吗?或者有其他方法来实现这一点吗?

似乎为每个可为空的类型创建映射到其自身,如下所示:

Mapper.CreateMap()
.转换使用(v=>v);

似乎起到了修复作用。但我更希望有一个包含所有可为空类型的完整解决方案,然后逐个指定它们。容易错过一些东西

谢谢。这解决了我的问题。但对我来说,这似乎是一个汽车制造商的错误。