.NET 4 ISet <> HashSet <>替換NHibernate Iesi.Collections ISet,HashSet?我正在使用Castle代理和NHibernate 3.0。.NET 4 ISet <> HashSet <>替換NHibernate Iesi.Collections ISet,HashSet?
回答
不,不是本回復。
NHibernate引擎在內部集合類上使用Iesi.Collections.ISet
接口,該接口用作NHibernate持久化類中集合的包裝器。沒有直接轉換爲System.Collections.Generic.ISet<T>
。
更新:現在 NHibernate的4使用HashSet<T>
從BCL內部,並HashedSet<T>
已經從Iesi.Collections
依賴刪除。現在可以使用System.Collections.Generic.ISet<T>
的方法。
是的。有兩種方法:
- 聲明您的收藏爲
ICollection<T>
並初始化它作爲HashSet<T>
。見this article。我將模型集合作爲私人 成員並公開IEnumerable<T>
,所以這可以很好地工作,但缺點是您無法公開ISet<T>
。 - 使用Jose Romaniello的Set4Net4 NuGet包。請參閱this article 和source code。
感謝您的鏈接。 – 2012-02-10 12:42:17
我喜歡第二種方法。 – kaptan 2012-04-24 20:46:27
嗯,當我嘗試它時,NHib出於某種原因正在將我的集合重新創建爲一個Array,所以我無法添加/刪除項目。它只是看着ICollection,並決定它可以放任何喜歡的東西...... – JustAMartin 2013-02-22 09:25:34
是的,用Nhibernate 4,使用System.Collections.Generic.ISet<>
現在是the way to go。
- 1. AutoMapper:class屬性,映射ISet <object>到HashSet <Object>
- 2. NHibernate和.net-4.0新的ISet <T>集合
- 3. HashSet <String> .contains()
- 4. 爲什麼我的代碼需要與HashSet <T>而不是ISet <T>重載?
- 5. 在泛型中使用語句:使用ISet <> = System.Collections.Generic.ISet <>
- 6. 對於.Net,沒有Hashset <T, G>?
- 7. ObjectIDGenerator與HashSet <T>
- 8. 如何繪製複雜的IDictionary <ProtectionGroupIdentifier,HashSet的<VMIdentifier >>
- 9. F# - >實現HashSet的IComparable <'a>
- 10. HashSet <T>和List <T>有什麼區別?
- 11. 在HashSet上調用Distinct <>()<T>
- 12. ISet <T>使用DataContractJsonSerializer序列化爲JSON
- 13. Java,泛型:Set <?> s = HashSet <String>()和Set s = HashSet <String>()之間的區別是什麼?
- 14. ISet <T>通知添加和刪除?
- 15. 爲什麼HashSet <T>未實現IReadOnlyCollection <T>?
- 16. HashSet <T>去哪裏VS2012?
- 17. 動態intitialize上構建類ISET <t>
- 18. 在.NET中將數組轉換爲HashSet <T>
- 19. 將HashSet <T>轉換爲.NET中的數組
- 20. 轉換一個HashMap <整數,列表<String>>到的HashMap <字符串,HashSet的<Integer>>
- 21. HashSet <T>性能(與ObservableCollection <T>相比)?
- 22. 如何檢索HashSet的第二項<Tuple <string, int>>
- 23. 的毗連HashSet的<String>和IList的<String>
- 24. 的Java HashSet的<String>對象
- 25. Windows Phone 7上的HashSet <T>
- 26. 是HashSet <T> Xml可串行化?
- 27. HashSet <T> .IntersectWith()返回0結果
- 28. IndexOutOfRangeException添加到Hashset時<T>
- 29. 包含HashSet的<Integer>的Python中
- 30. HashSet的初始容量<Integer>
http://stackoverflow.com/questions/6272636/nhibernate-unable-to-cast-persistentgenericset-to-iset – 2012-02-10 12:38:37