持久化对象的 GetHashCode() 和 Equals() 实现
Implemenation of GetHashCode() and Equals() for persisted Objects
我无法理解方法Equals() 和GetHashCode() 的性能。我什么时候可以使用其中之一,或者在什么条件下使用。
我似乎找不到有关如何在 NHibernate 上下文中实现它们的示例。
因为有一个标签 NHibernate,OP 可能需要特定于 NHibernate 的标签。所以这是实现 Equals() 和 GetHashcCode()
的持久化实体的基础 class
public abstract class Entity
{
public virtual long Id { get; protected set; }
public override bool Equals(object obj)
{
var other = obj as Entity;
return other != null && (Id == 0 ? ReferenceEquals(this, other) : Id == other.Id);
}
public override int GetHashCode()
{
return Id.GetHashCode();
}
}
我无法理解方法Equals() 和GetHashCode() 的性能。我什么时候可以使用其中之一,或者在什么条件下使用。
我似乎找不到有关如何在 NHibernate 上下文中实现它们的示例。
因为有一个标签 NHibernate,OP 可能需要特定于 NHibernate 的标签。所以这是实现 Equals() 和 GetHashcCode()
的持久化实体的基础 classpublic abstract class Entity
{
public virtual long Id { get; protected set; }
public override bool Equals(object obj)
{
var other = obj as Entity;
return other != null && (Id == 0 ? ReferenceEquals(this, other) : Id == other.Id);
}
public override int GetHashCode()
{
return Id.GetHashCode();
}
}