.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