加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 什么是合适的NHibernate / Iesi.Collections.Generic.ISet

发布时间:2020-12-15 08:42:39 所属栏目:百科 来源:网络整理
导读:在最新版本的Iesi.Collections中缺少Iesi.Collections.Generic.ISet. 似乎有三种选择: LinkedHashSet ReadOnlySet SynchronizedSet Iesi.Collections.Generic.ReadOnlySet似乎最接近ISet,文档说明: ... although it's advertised as immutable it really i
在最新版本的Iesi.Collections中缺少Iesi.Collections.Generic.ISet.
似乎有三种选择:

> LinkedHashSet
> ReadOnlySet
> SynchronizedSet

Iesi.Collections.Generic.ReadOnlySet似乎最接近ISet,文档说明:

... although it's advertised as immutable it really isn't. 
Anyone with access to the wrapped set can still change the set.

似乎ReadOnlySet是ISet的最佳替代品?目前,实现是通过公共方法向集合添加项目,因此它似乎是最合适的.替代方案(IList,bag?)似乎需要更多资源或不那么快/有效)?还有更好的选择吗? (该列表不应该有重复,可以手动验证)

我会做的事情如下:

public virtual ISet<MyClass> MyClass
{
    get { return this.myClass }
}

public virtual void AddItem(MyClass item)
{
    ... // Null checks and initialize ISet if null
    myClass.Add(item)
}

基本上它归结为替代品,是否存在没有负面影响的替代品,如速度等?

解决方法

好吧,从Nuget获得Iesi.Collections仅提供v.4.

这里的解决方案适用于NHibernate 3.x,但这个问题可能与NHibernate 4有关. Issuewith NHibernate,Fluent NHibernate and Iesi.Collection. What would you try next?

我删除了Iesi引用并添加了NHibernate,其中包括旧版本的Iesi和ISet.它实际上并没有解决ISet与替代方案,但它确实解决了我的问题所以我可以继续使用ISet.

也许他们会将它添加到NHibernate 4.0版本中,否则它将需要在那时进行转换.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读