繁体   English   中英

NHibernate设置:我应该重写Equals和GetHashCode吗?

[英]NHibernate set : Should I override Equals and GetHashCode?

我是NHibernate的新手。 我正在使用<set ...>映射来实现多对一和多对多关联。 它们作为ICollection <T>类型的属性公开,实际上由HashSet <T>实现。

我的问题是,我应该为相关类型重写Equals和GetHashCode,以便它们匹配类型的数据库标识(实际上,当Id属性相等时,对象是相等的)? 或者NHibernate会以某种方式为我处理这个问题吗?

如果我这样做,如果我想在任何时候在多对多集合中插入多个值,我会发现一个问题,因为新元素的ID可能是Guid.Empty; 因此被认为是同一个项目。

你不必一定遇到那个问题,看看uNhAddIns中的AbstractEntity (它实现了EqualsGetHashCode

如果要从两个不同的Nhibernate会话加载对象,则覆盖Equals / GetHashCode。 查看Nhibernate 手册

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM