Nhibernate с Microsoft System.Data.OracleClient - PullRequest
7 голосов
/ 18 марта 2009

Я пытаюсь использовать Nhibernate с Oracle, используя Microsoft System.Data.OracleClient

Конфигурация Nhibernate (это правильно для драйвера Microsoft?)

  <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
    <session-factory>
      <property name="show_sql">true</property>
      <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
      <property name="cache.use_second_level_cache">true</property>
      <property name="cache.provider_class">NHibernate.Caches.SysCache.SysCacheProvider, NHibernate.Caches.SysCache</property>
      <property name="cache.use_query_cache">true</property>
      <property name="dialect">NHibernate.Dialect.Oracle9Dialect</property>
      <property name="connection.driver_class">NHibernate.Driver.OracleDataClientDriver</property>
      <property name="connection.connection_string">Data Source=localhost;User Id=jbadmin;Password=justbooks12;Integrated Security=no;</property>
    </session-factory>
  </hibernate-configuration>

Исключение броска,

The IDbCommand and IDbConnection implementation in the assembly Oracle.DataAccess could not be found. Ensure that the assembly Oracle.DataAccess is located in the application directory or in the Global Assembly Cache. If the assembly is in the GAC, use <qualifyAssembly/> element in the application configuration file to specify the full name of the assembly. 

Я попытался скопировать System.Data.OracleClient.dll в выходной каталог bin. Это не помогло. Я также попытался скопировать Oracle Client dll в выходной каталог bin. Это тоже не помогло.

Исключение говорит, что сборка Oracle.DataAccess не найдена. Но в Microsoft System.Data.OracleClient такой сборки нет. Ищет драйверы Oracle ODP?

Редактировать: Если выше Конфигурация неверна, помогите мне, опубликовав Конфигурация для System.Data.OracleClient

Ответы [ 2 ]

13 голосов
/ 18 марта 2009

Эта строка в вашей конфигурации:

  <property name="connection.driver_class">NHibernate.Driver.OracleDataClientDriver</property>

указывает NHibernate использовать драйверы ODP.NET, найденные в Oracle.DataAccess.dll. Это позволяет NHibernate использовать функции ODP.NET, такие как пул подключений и трассировка. В зависимости от версии установленного клиентского программного обеспечения Oracle, вы можете найти копию этой сборки где-нибудь, например, C: \ Oracle \ product \ 10.1.0 \ Client_1 \ BIN \

Если вы предпочитаете вместо этого использовать драйвер Microsoft System.Data.OracleClient, измените эту строку на:

  <property name="connection.driver_class">NHibernate.Driver.OracleClientDriver</property>
3 голосов
/ 21 мая 2010

Использование драйвера Oracle для Microsoft сильно снизит производительность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...