命名空间 'NHibernate.Collection' 中不存在类型或命名空间名称 'PersistentBag'

The type or namespace name 'PersistentBag' does not exist in the namespace 'NHibernate.Collection'

我在 Visual Studio 2013 年使用 NuGet 将 Windows SmartClient 解决方案从 nHibernate 2.2 升级到 4.0。

这一行:

sb.Append ("=" + ((NHibernate.Collection.PersistentBag) state[i]).Count.ToString() + " items");

我收到这个错误:

The type or namespace name 'PersistentBag' does not exist in the namespace 'NHibernate.Collection'

Visual Studio(输入 . 时)建议的选择是:

第二个和第三个不是类。第一个和第四个没有Count()方法。

在这种情况下必须使用哪一个?

NHibernate 4 中没有PersistentBag,只有PersistentGenericBag<T>

它是 NH 的内部类型,不应转换为。

我不知道这段代码是在哪里找到的。如果它是你自己的,你可以通过 IListICollection 访问 Count,它们都是由包实现的。

如果它是来自您使用的框架的代码,您可能必须使用另一个 NHibernate 版本。

我也有使用它的代码。看起来您可以用 IList 转换替换 persistentBag 转换。