NHibernate - 在配置中找不到(oracle)方言

4 oracle nhibernate

我有以下hibernate.cfg.xml

<hibernate-configuration  xmlns="urn:nhibernate-configuration-2.2" >
<session-factory>
    <property name="connection.driver_class">NHibernate.Driver.OracleClientDriver</property>
    <property name="connection.connection_string">
  User ID=user;Password=password;Data Source=database
</property>
    <property name="show_sql">false</property>
    <property name="dialect">NHibernate.Dialect.Oracle9Dialect</property>
    <property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property>
    <property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>
</session-factory>
Run Code Online (Sandbox Code Playgroud)

现在我收到以下错误:

失败:NHibernate.MappingException:无法编译映射文档:Mob.Icecube.Data.NH.Mappings.Customer.hbm.xml ----> System.InvalidOperationException:在配置中找不到方言

任何人都可以帮我解释为什么他找不到司机?一些额外的信息......它只在UnitTest应用程序中运行我将NHibernate和System.Data.OracleClient添加到项目的引用中使用最新的NHibernate版本(2.2 beta)

提前致谢

Nig*_*gel 6

NHibernate程序集中没有NHibernate.Dialect.Oracle9Dialect方言.

有一个NHibernate.Dialect.Oracle9iDialect.

检查您的NHibernate配置文件是否正确加载.使用类似的东西:

onfiguration config = new Configuration().Configure("hibernate.cfg.xml").
Run Code Online (Sandbox Code Playgroud)

这假设您的NHibernate配置文件名为hibernate.cfg.xml,并且位于应用程序的根目录下.