2011-11-27 37 views

回答

19

從3.2開始,NHibernate擁有自己的嵌入式代理生成器:還有更多需要NHibernate.ByteCode.LinFu.dll或者NHibernate.ByteCode.Castle.dll,我不認爲它們再被支持。

我認爲你必須下載NHibernate.ByteCode.LinFu.dll源代碼的最後一個支持源代碼,並試着對3.2進行編譯。

+0

因此,當配置NHibernate會話工廠,我應該設置什麼類型的ProxyFactory? – sternr

+1

您是使用web/app.cofig還是通過c#代碼配置NHibernate? 在第一種方法中,您必須指定「codedom」(對於基於CodeDOM的版本),「lcg」(對於輕量級版本)或自定義提供者。 通過c#代碼,你必須指定一個'NHibernate.Bytecode.CodeDom.BytecodeProviderImpl','NHibernate.Bytecode.Lightweight.BytecodeProviderImpl'或一個自定義的屬性。 –

+3

好的,所以這不起作用,我不得不做的是使用下面的代理工廠:NHibernate.Bytecode.DefaultProxyFactoryFactory – sternr

27

在NHibernate 3.2中,你不需要NHibernate.ByteCode.LinFu.dll,因爲NHibernate 3.2自己實現了代理。所以我們需要修改配置,如:

<property name=」proxyfactory.factory_class」>NHibernate.Bytecode.DefaultProxyFactoryFactory, NHibernate</property> 
+3

如果這不起作用,嘗試從您的配置文件中完全刪除proxyfactory.factory_class行。 –