我正在设置我的第一个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导入了很多我的映射等吗?感谢帮助。
答案 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>