AutoMapper不会将源映射到目标

时间:2014-04-24 15:10:22

标签: c# .net automapper

我不知道为什么,在某些时候,AutoMapper没有将源映射到目标对象。

   var result = Mapper.Map<User, User>(userToImport, userToUpdate);
   var areEquals = result == userToUpdate; //FALSE !!! Why?
   var areEquals2 = result.Equals(userToUpdate); //FALSE !!! Why?
未使用userToImport中的新值更新

userToUpdateresult是映射的正确结果对象。但resultuserToUpdate是不同的对象。

主要问题是,为什么userToUpdate没有更新?

2 个答案:

答案 0 :(得分:2)

您必须先创建一个地图,否则它将不会更新并返回目标参数的对象。

 Mapper.CreateMap<User, User>();

答案 1 :(得分:-2)

你需要做这样的事情:

public class User
{
    public int Property1 { get; set; }
    public int Property2 { get; set; }

    public override bool Equals(object obj)
    {
        if (!(obj is User))
            return false;
        else
        {
            Usero = obj as User;
            return o.Property1 == this.Property1 && o.Property2 == this.Property2;
        }

    }
}

之后你可以obj1.Equals(obj2);