質問には:)から始めるコードはあまりありませんが、通常、カスタムequlityメンバーを追加するには、部分クラスの2番目の部分を作成し、IEquatable<T>インターフェイスを実装します。
その場合は、非ジェネリックの等式メンバーEquals()とGetHashCode()のをオーバーライドすることもお勧めしますObject。これは常にオーバーライドできるはずです。おそらく例外は、「GetHashCode」の代わりに「HashCode」を使用したことが原因です。
簡単な例:
public partial class EntityClass : IEquatable<EntityClass>
{
public bool Equals(EntityClass other)
{
return this.Id == other.Id;
}
public override bool Equals(object other)
{
return (other is EntityClass)
&& this.Id == ((EntityClass)other).Id;
}
public override int GetHashCode()
{
return this.Id.GetHashCode();
}
}