automapper - 使用值映射属性

时间:2012-10-26 08:27:50

标签: c# automapper

我有两个对象,基本上(所以不完全!)相同。它们都具有值的属性。

我想将一个对象映射到另一个对象,并覆盖源目标到目标目标的所有属性值。但似乎默认情况下不会发生这种情况?

注意: 我的地图已在我的应用程序启动时定义。

我的对象基本上是这样的:

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中映射值?

2 个答案:

答案 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);