A continuación se muestra un ejemplo de implementación de anular Object.equals() para una clase base entidad de la que todas las demás entidades en una aplicación derivan.¿Cuál es la implementación correcta para GetHashCode() para clases de entidad?
Todas las clases de entidad tienen la propiedad Id, que es un int anulable. (Es la clave principal de cualquier mesa de la clase de entidad corresponde a.)
public override bool Equals(object obj)
{
if (obj == null || GetType() != obj.GetType())
return false;
if (base.Equals(obj))
return true;
return Id.HasValue && ((EntityBase) obj).Id.HasValue &&
Id.Value == ((EntityBase) obj).Id.Value;
}
Dada esta aplicación de Iguales(), ¿cómo se implementa correctamente GetHashCode()?
Para el registro, tener una int nullable para una identificación es una idea horrible. Los ID deben ser siempre GUID y definitivamente no pueden contener nulos. –