2009-08-30 6 views
1

this generic CompareObjects 클래스를 사용하고 싶지만 Subsonic 레코드 개체가 IComparable을 구현하지 않는 것 같습니다.Subsonic 두 개체 비교

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

내가 끝낸 것은 this Generic Serializer를 사용하여 DB에 저장된 레코드 (userFromDB)와 수정 된 사용자 (modifiedUser)를 모두 사용하는 것입니다. XML로 순차화한 후 this을 사용하여 diffgram을 작성하십시오. 정확히 내가 필요로하는 것.

woot!

1

기본적으로 AR 템플릿은 기본 개체 비교 대신 기본 키를 비교하기 위해 Equals()를 재정의합니다. ActiveRecord.tt 파일을 변경하여이를 변경할 수 있습니다.