我不知道为什么,在某些时候,AutoMapper没有将源映射到目标对象。
var result = Mapper.Map<User, User>(userToImport, userToUpdate);
var areEquals = result == userToUpdate; //FALSE !!! Why?
var areEquals2 = result.Equals(userToUpdate); //FALSE !!! Why?
未使用userToImport中的新值更新 userToUpdate
。 result
是映射的正确结果对象。但result
和userToUpdate
是不同的对象。
主要问题是,为什么userToUpdate
没有更新?
答案 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);