在这些问题中详细介绍了在NHibernate实体类上实现Equals
和GetHashCode
的通用最佳实践:
这些generic implementation可以在基本实体类上完成,以便它始终使用代理ID - 它可以处理各种场景,例如代理和实体实体。
但是,我有某些实体也有一个非常明智的商业密钥。
我应该将这些实体中的等式方法覆盖为如下所示吗?
public override bool Equals(object other)
{
// Identity equality or business key equality
return base.Equals(other) || BusinessKey.Equals(other.BusinessKey);
}