Я переопределял Equals() моего класса для сравнения значений идентификатора типа Guid.
Затем Visual Studio предупредила:
... переопределяет Object.Equals(объект o), но не переопределяет Object.GetHashCode()
Итак, я также переопределяю его GetHashCode() следующим образом:
public partial class SomeClass
{
public override bool Equals(Object obj)
{
//Check for null and compare run-time types.
if (obj == null || this.GetType() != obj.GetType()) return false;
return this.Id == ((SomeClass)obj).Id;
}
public override int GetHashCode()
{
return this.Id.GetHashCode();
}
}
Кажется, что сработало. Правильно ли я сделал это? Запомнить идентификатор типа Guid. Имеет ли значение, что мой класс является объектом Entity Framework?