Entity Framework 5 を使用しており、.Equals と .GetHashCode をオーバーライドしようとしました
public class Students {
public int PersonId { get; set; }
public string Name { get; set; }
public int Age {get; set;}
public override bool Equals(object obj)
{
return this.Equals(obj as Students);
}
public bool Equals(Students other)
{
if (other == null)
return false;
return this.Age.Equals(other.Age) &&
(
this.Name == other.Name ||
this.Name != null &&
this.Name.Equals(other.Name)
);
}
public override int GetHashCode()
{
return PersonId.GetHashCode();
}
}
ただし、私の非常に単純な方法は機能していないようで、EF から次のようなエラーが表示されます。
これは、EF が比較を行う方法によるものだと考えています。
独自のメソッドを提供し、これを .Equals と同じ方法で呼び出す方法はありますか? .Same というメソッドをコーディングして、それを使用できるのではないかと考えていました。それは合理的なことですか。私がそれを行い、2 つのオブジェクトを比較したい場合、どうすればそれをコーディングして呼び出すことができますか?