C# NHibernate & Oracle Client Géré

J'ai un gros projet qui cache un autre 16 projet (Tests, des sites web & App comme le Noyau, e-Mail etc:.). J'utilise C# MVC4 pour mon projet de site web. Si j'utilise un non Client Géré besoin de moi pour faire un dossier de projet /bin enregistré bibliothèque Oracle.DataAccess.dll et tout fonctionne très bien ( je dois définir(modifier) dans le Web.config -> param:

<connectionStrings>
   <add name="PC13" connectionString="User Id=TEST; Password=TEST; Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=DBTEST)(PORT=1521))(CONNECT_DATA=(SERVER = DEDICATED)(SERVICE_NAME = DBTEST)));" />   
</connectionStrings>

Et DB connexion fonctionne très bien sans ORA exception TNS_NAME ). Je dois définir la source de Données pour chemin d'accès complet avec tnsnames.ora quand je utilisez uniquement des alias comme TEST j'obtiens un message "Exception: ORA-12154: TNS:impossible de résoudre le connecter identifiant spécifié", mais si j'ai mis plein tns code pour alias -> tout fonctionne très bien.

- Je utiliser hibernate.cfg.xml fichier:

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
   <session-factory>
      <property name="connection.driver_class">NHibernate.Driver.OracleDataClientDriver</property>
      <property name="show_sql">true</property>
      <property name="dialect">NHibernate.Dialect.Oracle10gDialect</property>
      <property name="command_timeout">60</property>
      <property name="cache.provider_class">NHibernate.Caches.SysCache2.SysCacheProvider, NHibernate.Caches.SysCache2</property>
      <property name="cache.use_second_level_cache">true</property>
      <property name="cache.use_query_cache">true</property>
      <property name="cache.default_expiration">120</property>
   </session-factory>  

Mon Web.config fichier (pour le client géré ajouter oracle.manageddataaccess.la partie client):

<connectionStrings>
   <add name="PC13" connectionString="User Id=TEST; Password=TEST; Data Source=DBTEST;" />   
</connectionStrings>

<oracle.manageddataaccess.client>
    <version number="*">
      <dataSources>
        <dataSource alias="DBTEST" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=DBTEST)(PORT=1521))(CONNECT_DATA=(SERVER = DEDICATED)(SERVICE_NAME = DBTEST)))"/>
      </dataSources>
    </version>
</oracle.manageddataaccess.client>

J'ai dédié serveur de base de données & j'ai programmation sur Visual Studio 2010 SP1 32 bits (Win 7 64b). J'ai installé le client Oracle 11g (32 & version 64b). Fichier hibernate.cfg.xml est utilisé dans une autre 3 projet dans le paquet comme "IntegrationTest", "Coeur", etc:. Je lance le programme (F5) avec le mode de Débogage et de la plate-forme x86.

Dans le projet que j'ai utiliser:

  • NHibernate v. 3.3.1.4000
  • StructureMap v. 2.6.4.
  • et d'autres sans importance Paquets

Que dois-je installer le paquet et comment le configurer?
J'Essaie d'ajouter une référence avec Nuget

  • Officiel Oracle ODP.NET Géré Pilote 12.1.22
  • Fournisseur de Données Oracle .NET (ODP... 121.1.2

Quand j'ai installer certains de ces paquets (ajouter des références à partir de Nuget) pour mon projet de Site, et je le change hibernate.cfg.xml pour:

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

J'ai reçu un message de VS Exception "n'a pas Pu créer le pilote de NHibernate.Le pilote.OracleManagedDriver"


Si je vais à la Vue -> Serveur Exploler -> à la Données Cennection et j'ai mis un Ajouter une Connexion . . . (voir le lien -> Facile en Voiture .NET Manuel d'utilisation) . Je n'obtiens pas un ODP.NET Géré option, uniquement .NET Framework fournisseur de données pour Oracle option, et quand j'essaie de connexion je reçois ce message "BadImageFormatException. Cela se produit lorsque vous exécutez en mode 64 bits avec la version 32 bits du client Oracle installé les composants"

Ma question est

  1. Ce que je peux utiliser pour la référence (pilote) ?
  2. Comment puis-je le mettre ?

Un accès Facile par la route .NET Manuel

Merci beaucoup

OracleManagedDriver a été ajouté dans NHibernate 4.0. Il est absent de 3,4 et précédents.
- Je mettre à jour à NHibernate 4.0.4., mais j'ai encore un message "impossible de créer le pilote de NHibernate.Le pilote.OracleManagedDriver" et en Vue -> Serveur Exploler -> pour la Connexion de Données et j'ai mis un Ajouter une Connexion . . . je ne vois pas ODP.NET Géré Client Oracle Option, Comment puis-je trouver le nom de connexion.driver_class à partir de nhibernate.cfg.xml fichier, j'ai essayer quelques jeux comme NHibernateOracleExample.Le pilote.OracleDriver, NHibernateOracleExample ou NHibernate.Le pilote.OracleDataClientDriver mais je ne sais pas ce qu'est un bon nom pour ce paramètre valeur

OriginalL'auteur Jan Sršeň | 2015-08-26