2009-04-17 2 views

답변

-2

왜 NHibernate를 사용할 때 Equals와 GetHashCode를 재정의해야한다고 생각하십니까? NHibernate는 동일한 Session 내에서 액세스되는 모든 엔티티에 대한 엔티티 평등을 보장합니다. 설명서의 Considering object identity을 참조하십시오.

덧붙여 편집 : 질문을 다시 읽고 약간의 인터넷 검색을 한 후에 C#에서 항등 연산자 (==)를 재정의 할 수 있다는 것을 알지 못했습니다.

+0

1. 지속성을 전혀 무시하고 싶을 수 있습니다. 이것이 바로 ORM을 사용하는 이유입니다. 2. 동일한 엔티티의 두 인스턴스가 동일하지 않은 경우 오히려 이상합니다. 3. 집합 같은 집합을 사용할 수 있기를 원합니다 4. NHibernate없이 코드가 같은 방식으로 동작하게합니다. 즉, 당신은 ISession의 identitymap에 의지 할 수 없다는 것을 의미합니다. – Paco

+0

NHibernate가 Equals와 GetHashCode를 구현할 필요가 없다는 것에 동의하지 않습니까? 그게 질문 이었나요? 일반적으로 모범 사례 (값 유형의 경우 예 : 참조 유형의 경우 가능)는 다른 질문입니다. –

+0

Equals 및 GetHashCode를 재정의하는 이유는 http://www.derickbailey.com/2008/03/24/NHibernateBestPracticesALWAYSOverrideEqualsAndGetHashCode.aspx에서 링크됩니다. – mcintyre321