代码之家  ›  专栏  ›  技术社区  ›  Abdulsattar Mohammed

NHibernate是否需要代理工厂?

  •  9
  • Abdulsattar Mohammed  · 技术社区  · 16 年前

    我在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.
    

    我已经阅读了许多教程,但还没有看到这个代理工厂配置。有必要具体说明吗?如果是的话,我该怎么做?我需要参考其他图书馆吗?

    1 回复  |  直到 16 年前
        1
  •  14
  •   joshua.ewer    16 年前

    如果你使用最新的NHibernate(2.1),你会注意到 mainline for NH doesn't have a dependency on castle 对于代理生成来说,所有你看过的教程都可能已经过时了。

    基本上,您现在有一些关于如何创建动态代理的选择,因此您需要显式地配置要使用的代理生成器。示例如下 how-to post on forge . 将引用选项的完整列表 here .

    另外,如果你想保持简单,就用 Castle 由于NHibernate的旧版本都默认使用它。

    推荐文章