持久化对象的 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();
    }
}