nHibernate ProxyFactory问题

时间:2011-04-12 16:06:52

标签: .net nhibernate

我正在设置我的第一个nHibernate项目。我创建了一个简单的Web表单,它接受一个名称和一个id但是,我继续收到以下错误:

未配置ProxyFactoryFactory。 使用一个可用的NHibernate.ByteCode提供程序初始化session-factory配置节的'proxyfactory.factory_class'属性。 例: NHibernate.ByteCode.LinFu.ProxyFactoryFactory,NHibernate.ByteCode.LinFu 例: NHibernate.ByteCode.Castle.ProxyFactoryFactory,NHibernate.ByteCode.Castle

我已将Castle和LinFu的引用添加到我的项目中。我还将web.config配置为以下内容:

<section name="nhibernate" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" allowDefinition="Everywhere"/>

                      

你能告诉我发生了什么吗?我尝试了一切。是从VisualNHibernate导入了很多我的映射等吗?感谢帮助。

2 个答案:

答案 0 :(得分:0)

您必须指定要使用的代理工厂,例如:

<property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>`

而且,此外,您发布的配置包含......没有任何内容,请确保具有最低配置,如果没有它,您将无法创建NH会话工厂。

答案 1 :(得分:0)

您需要添加正确的ProxyFactoryFactory,让NHibernate知道应该使用什么实现来创建代理对象。 Fabio在nhibernate.info上发布了如何做到这一点:http://nhibernate.info/blog/2008/11/09/nh2-1-0-bytecode-providers.html 我还强烈建议阅读documentation about configuration of NHibernate

<hibernate-configuration  xmlns="urn:nhibernate-configuration-2.2" >
    <session-factory name="YourAppName">
        <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
        <property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
        <property name="connection.connection_string">
            Server=(local);initial catalog=nhibernate;Integrated Security=SSPI
        </property>
        <property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
    </session-factory>
</hibernate-configuration>