2009-11-23 1 views
3

두 개의 EntityObject를 값 비교를 위해 비교하는 간단한 방법이 있습니까? 모든 데이터베이스 값이 동일한 지 확인하기 만하면 EntityKey가 다른지 상관하지 않습니다.Entity Framework : 동일한 값의 EntityObject를 비교하는 방법이 있습니까?

이 기능이 내장되어 있습니까? 아니면 저만의 방법을 써야합니까?

내가 여기에서 원하는대로 같음()이 작동하지 않는다고 생각하십니까?

답변

3

Equals()checks for referential equality, 그래서 도움이되지 않습니다.

이 질문에 대해 살펴 보자 What is the best way to compare two entity framework entities?

UPDATE 2014 :
더 완전한 답변, EF의 현재 상태에 맞춰, 당신은 코드 첫 번째 모델의 평등 연산자를 대체 할 수 있다는 것 가치 평등에 대한 점검을 제공합니다.

+0

IEquality 을 구현하면 어떻게 될까요? – Shimmy

+0

'Equals()가 참조 평등을 검사합니다.'라고 혼동 스럽지만 [MSDN] (https://msdn.microsoft.com/en-US/library/ms173147(v=80)) .aspx)는 '값의 동일성을 검사하려면 같음 또는 같음'을 사용합니다. –

+1

@TheRedPea - Equals()의 기본 구현은 참조 동등성을 검사합니다. https://msdn.microsoft.com/en-us/library/bsc2ak47(v = vs.110) .aspx. Equals()를 재정의하지 않으면 ReferenceEquals()와 동일합니다. 그러나 Equals()를 재정의하고 값의 동일성을 확인할 수있는 사용자 정의 구현을 제공 할 수 있습니다. 이 동작을 문서화하는 데주의를 기울여야합니다. 이는 사용자의 API 소비자가 기대하는 것과 상반 될 수 있기 때문입니다. –