簡體   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