为持久化对象实现GetHashCode()和Equals()

时间:2015-01-15 22:36:02

标签: c# nhibernate

我无法理解方法Equals()和GetHashCode()的性能。我什么时候可以使用其中一种,或者在什么条件下使用。

我似乎无法找到有关如何在NHibernate上下文中实现它们的示例。

1 个答案:

答案 0 :(得分:-1)

因为有一个标签NHibernate,OP可能特别想要NHibernate。所以这里是持久化实体的基类,它实现了Equals()和GetHashcCode()

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();
    }
}