我在hibernate.cfg.xml中有这个配置:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
<property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
<property name="connection.connection_string">Data Source=.\SQLEXPRESS;Initial Catalog=MyDB;Integrated Security=SSPI;</property>
<property name="show_sql">true</property>
</session-factory>
</hibernate-configuration>
我刚刚创建了一个类库,并且我使用MbUnit创建了一个集成测试。它失败。报告的一部分(我认为就足够了)在这里:
** NO TESTS WERE RUN (No tests found) **
TestCase 'M:IntegrationTests.RepositoryTests.ListAllPostsReturnsAListOfPost'
failed: The ProxyFactoryFactory was not configured.
Initialize 'proxyfactory.factory_class' property of the session-factory configuration section with one of the available NHibernate.ByteCode providers.
我已阅读了许多教程,但没有看到此代理工厂配置。指定它真的有必要吗?如果是这样,我该怎么做?我是否要引用其他一些库?
答案 0 :(得分:14)
如果你正在使用最新的NHibernate(2.1),你会发现mainline for NH doesn't have a dependency on castle代理生成了,所以你所看过的所有教程都可能已经过时了。
基本上,您现在可以选择创建动态代理的方式,因此您需要显式配置要使用的代理生成器。可以在此how-to post on forge中找到示例。完整的选项列表引用here。
P.S。如果你想保持简单,只需使用Castle,因为旧版本的NHibernate默认使用它。