-1

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

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

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

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

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 中的值?

4

2 回答 2

3

您应该AutoMapper首先配置:

Mapper.CreateMap<Object1, Object2>();

在您的示例中,您试图映射classes但它不可能,您应该映射instances类:

var o1 = new Object1();
var o2 = new Object2();

Mapper.Map(o1, o2);
于 2012-10-26T08:31:38.203 回答
1

更新

Automapper返回新实例,将该返回实例分配给旧实例。

object1 = Mapper.Map<Object1, Object2>(object2);
于 2012-10-26T08:36:48.710 回答