Entity Framework 5를 사용하고 있습니다. 내 C # 코드에서 두 개체가 같은지 비교하고 싶습니다. 없는 경우 업데이트를 발행하고 싶습니다.
.Equals 메서드와 gethascode 메서드를 재정의해야한다고 들었습니다. 내 수업은 다음과 같습니다.
public class Students {
public int PersonId { get; set; }
public string Name { get; set; }
public int Age {get; set;}
}
.Equals 및 .GetHashCode를 재정의해야하는 이유를 설명 할 수 있습니다. 또한 누군가 나에게 예를 줄 수 있습니다. 특히 해시 코드에 대해 잘 모르겠습니다. 내 PersonId는이 클래스의 고유 번호입니다.
여러 가지 이유로 두 가지 방법을 재정의해야합니다. 이 GetHashCode
에 삽입 및 검색에 사용 Dictionary
하고 HashTable
, 예를 들면. 이 Equals
메서드는 개체에 대한 동등성 테스트에 사용됩니다. 예를 들면 :
public partial class myClass
{
public override bool Equals(object obj)
{
return base.Equals(obj);
}
public override int GetHashCode()
{
return base.GetHashCode();
}
}
의 경우 다음 GetHashCode
을 수행했을 것입니다.
public int GetHashCode()
{
return PersonId.GetHashCode() ^
Name.GetHashCode() ^
Age.GetHashCode();
}
GetHashCode
메서드 를 재정의하는 경우을 재정의 해야 Equals
하며 그 반대의 경우도 마찬가지입니다. 두 개체가 같은지 테스트 할 때 재정의 된 Equals
메서드가 반환 true
되는 경우 재정의 된 메서드는 두 개체에 대해 GetHashCode
동일한 값을 반환해야합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다