Ich habe ein großes Projekt, das ein anderes 16 Projekt verbirgt (Tests, Webs & App wie Core, E-Mail etc .:.). Ich verwende C# MVC4 für mein Hauptweb site Projekt. Wenn ich einen nicht Managed Client brauchen mich verwenden, um einen Projektordner /bin aufgezeichnet Bibliothek Oracle.DataAccess.dll und alles funktioniert gut zu tun (ich muss (ändern) in Web.config gesetzt -> param:C# NHibernate & Oracle Managed Client
<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>
Und DB Verbindung funktioniert gut ohne ORA Ausnahme TNS_NAME). Ich muss Datenquelle auf vollständigen Pfad mit tnsnames.ora setzen, wenn ich nur Alias wie TEST verwende, erhalte ich eine Nachricht "Ausnahme: ORA-12154: TNS: Konnte die angegebene Verbindungskennung nicht auflösen", aber wenn ich vollständigen tns-Code für Alias einstelle -> Alles funktioniert super.
Ich benutze hibernate.cfg.xml Datei:
<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>
Meine Web.config-Datei (für verwaltete Client oracle.manageddataaccess.client Teil hinzugefügt werden):
<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>
Ich habe dedizierten DB-Server & ich auf Visual Studio 201 programmieren 0 SP1 32 Bit (Win 7 64b). Ich habe Oracle Client 11g (32 & 64b Version) installiert. Die Datei hibernate.cfg.xml wird in einem anderen 3-Projekt im Paket wie "IntegrationTest", "Core" etc: verwendet. Ich starte Programm (F5) mit Debug-Modus und x86-Plattform.
Im Projekt, das ich benutzen.
- NHibernate v 3.3.1.4000
- StructureMap v 2.6.4..
- und andere unwichtige Pakete
Was muss ich das Paket installieren und wie man es einrichten? I Try Referenz hinzufügen mit Nuget
- Offizielle Oracle ODP.NET, Managed-Treiber 12.1.22
- Oracle Data Provider for .NET (ODP ... 121.1.2
Wenn ich installieren einige dieser Pakete auf meiner Website-Projekt (Referenzen aus Nuget hinzufügen) und i ändern hibernate.cfg.xml zu:
<property name="connection.driver_class">NHibernate.Driver.OracleManagedDriver</property>
ich habe Nachricht von VS Ausnahme
"Könnten Sie den Treiber von NHibernate.Driver.OracleManagedDriver nicht erstellen" Wenn ich auf die Ansicht gehen -> Server Exploler -> zur Daten Cennection und ich eine Verbindung hinzufügen. . . (siehe Link -> Eine einfache Anleitung zum .NET-Handbuch). Ich bekomme nur keine ODP.NET Managed Option.NET Framework-Datenprovider für Oracle-Option, und wenn ich Verbindung versuchen, erhalte ich diese Meldung „BadImageFormatException. Dies tritt auf, wenn in 64-Bit-Modus mit den 32-Bit-Oracle-Client-Komponenten ausgeführt wird installiert“
Meine Frage ist
- Was kann ich als Referenz (Treiber) verwenden?
- Wie kann ich es einstellen?
Vielen Dank
OracleManagedDriver wurde in NHibernate 4.0 hinzugefügt. Es fehlt von 3.4 und vorherigen. – jahav
Ich Update auf NHibernate 4.0.4., Aber ich habe immer noch eine Nachricht "Konnte nicht den Treiber von NHibernate.Driver.OracleManagedDriver" und in Ansicht -> Server Exploler -> auf die Datenverbindung und ich eine Verbindung hinzufügen. . . Ich kann ODP.NET Managed Oracle Client Option nicht sehen, Wie kann ich den Namen ** connection.driver_class ** aus der Datei nhibernate.cfg.xml finden, probiere ich einige wenige Sätze wie NHibernateOracleExample.Driver.OracleDriver, NHibernateOracleExample oder NHibernate.Driver .OracleDataClientDriver, aber ich weiß nicht, was ist ein richtiger Name für diesen Einstellungswert –