我正在将Windows Smart Client解决方案从nHibernate 2.2升级到4.0。
这也需要更新Iesi.Collections(4.0.1.4000)。

在这行上:

protected Iesi.Collections.Generic.ISet<PermitEvent> eventSet;


我收到此错误:

The type or namespace name 'ISet' does not exist in the namespace 'Iesi.Collections.Generic'


这个问题在另外2个站点上均未得到解答:
http://www.c-sharpcorner.com/forums/the-type-or-namespace-name-iset-could-not-be-found
http://www.resolvinghere.com/cc/the-type-or-namespace-name-iset-could-not-be-found.shtml

我能做什么?

最佳答案

使用NHibernate 4,在大多数情况下,您do not need anymore to explicitly depend on Iesi

相反,您应该迁移实体代码以使用System.Collections.Generic.ISet<T>

这是我所做的,甚至在遇到Iesi的任何问题之前。
如果要继续使用Iesi,可以通过为自己的NHibernate.Bytecode.ICollectionTypeFactory提供optional setting collectiontype.factory_class来实现。但是我认为这不值得麻烦。

Release notes,“ **从NH3.3.3.GA到4.0.0.GA的已知中断更改”部分:


  Iesi.Collections中的集合类型的许多用法现在已更改为使用BCL中的相应类型。这些类型的API略有不同。

10-08 17:40