2011-11-27 57 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行。 –