最近我用最新版本4.0.3.4000升级了我的NHibernate库。之后 - 在编译期间,我遇到了与“Iesi.Collections.Generic.ISet”相关的问题。从细节我明白 - 这个界面被删除,备用选项可用 - 其中一个是LinkedHashSet。
我想知道 - 这是替换ISet的最佳替代方案吗?
答案 0 :(得分:6)
**已知从NH3.3.3.GA到4.0.0.GA
的突然变化NHibernate现在的目标是.Net 4.0。 Iesi.Collections中集合类型的许多用法现在已更改为使用BCL中的相应类型。这些类型的API略有不同。
所以我们现在可以使用界面
System.Collections.Generic.ISet<T>
及其实现甚至是System
内置类型,例如
System.Collections.Generic.HashSet<T>
因此减少对 iesi 库的依赖......
但正如此处所讨论的那样:What is a suitable NHibernate / Iesi.Collections.Generic.ISet<T> replacement? - 我们也可以使用LinkedHashSet<T>
,ReadOnlySet<T>
,SychronizedSet<T>
同时检查NHibernate测试项目中的Customer.cs
:
using System.Collections.Generic;
using System.Collections.ObjectModel;
namespace NHibernate.DomainModel.Northwind.Entities
{
public class Customer
{
private readonly ISet<Order> _orders;
public Customer()
{
_orders = new System.Collections.Generic.HashSet<Order>();
}
public virtual ISet<Order> Orders
{
get { return _orders; }
}
...