亚音速比较两个对象

时间:2009-08-30 13:53:47

标签: subsonic subsonic3

我想使用this泛型CompareObjects类,但似乎Subsonic记录对象不实现IComparable。

User userFromDB = User.SingleOrDefault(x => x.UserName == "CmdrTallen");
User modifiedUser = new User();
TryUpdateModel(modifiedUser);
if(CompareOjbects<User>(userFromDB, modifiedUser) != 0)
{
    this.log("User was modified")
    //+ Add modified columns collection to log here
}

我是否重新发明了轮子?也许更简单的方法?

2 个答案:

答案 0 :(得分:2)

我最终做的是使用this通用串行器来获取数据库存储记录(userFromDB)和修改后的用户(modifiedUser)。将它们序列化为XML,然后使用this创建diffgram。正是我需要的。

活泉!

答案 1 :(得分:1)

默认情况下,AR模板会覆盖Equals()以比较主键而不是基础对象比较。您可以通过更改ActiveRecord.tt文件来更改此项。