我有两个对象,基本上(所以不完全!)相同。它们都具有值的属性。
我想将一个对象映射到另一个对象,并覆盖源目标到目标目标的所有属性值。但似乎默认情况下不会发生这种情况?
注意: 我的地图已在我的应用程序启动时定义。
我的对象基本上是这样的:
public class Object1
{
public String Name = "My new Name";
}
public class Object2
{
public String Name = "My old Name";
}
// Then somewhere in my code:
Mapper.Map(obj1, obj2);
因此,我尝试将Object1
中的所有值映射到Object2
。但是,当映射完成后,Object2
仍然具有旧值,而不是Object1
中的值。
如何在AutoMapper中映射值?
答案 0 :(得分:3)
您应首先配置AutoMapper
:
Mapper.CreateMap<Object1, Object2>();
在您的示例中,您尝试映射classes
但不可能,您应该映射instances
类:
var o1 = new Object1();
var o2 = new Object2();
Mapper.Map(o1, o2);
答案 1 :(得分:1)
<强>更新强>
Automapper
返回新实例,将该返回实例分配给旧实例。
object1 = Mapper.Map<Object1, Object2>(object2);