gpt4 book ai didi

c# - 什么是合适的 NHibernate/Iesi.Collections.Generic.ISet 替代品?

转载 作者:太空狗 更新时间:2023-10-29 21:34:26 25 4
gpt4 key购买 nike

在最新版本的 Iesi.Collections 中缺少 Iesi.Collections.Generic.ISet。似乎有三种选择:

  1. 链接哈希集
  2. 只读设置
  3. 同步集

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 的最佳替代品?目前的实现是通过公共(public)方法将项目添加到集合中,因此它看起来是最合适的。替代方案(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,其中包含带有 ISet 的旧版本 Iesi。它实际上并没有解决 ISet 与备选方案的对比问题,但它确实解决了我的问题,因此我可以继续使用 ISet。

也许他们会把它添加到 NHibernate 4.0 版本中,否则到时候就需要转换了。

关于c# - 什么是合适的 NHibernate/Iesi.Collections.Generic.ISet<T> 替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17018943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com