Iesi.Collections.Generic.LinkedHashSet <t>是迁移到NHibernate 4.0.3.4000 </t> </t>时Iesi.Collections.Generic.ISet <t>的最佳替代方案

时间:2015-02-16 16:05:37

标签: generics nhibernate

最近我用最新版本4.0.3.4000升级了我的NHibernate库。之后 - 在编译期间,我遇到了与“Iesi.Collections.Generic.ISet”相关的问题。从细节我明白 - 这个界面被删除,备用选项可用 - 其中一个是LinkedHashSet。

我想知道 - 这是替换ISet的最佳替代方案吗?

1 个答案:

答案 0 :(得分:6)

这是release notes

  

**已知从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; }
        }
        ...