Ho un grande progetto che nasconde un altro progetto 16 (Test, Webs & App come Core, Email ecc .:.). Io uso C# MVC4 per il mio progetto del sito web principale. Se uso un client non gestito ha bisogno di me per fare una cartella di progetto /bin registrato biblioteca Oracle.DataAccess.dll e tutto funziona bene (devo impostare (cambiamento) nel web.config -> param:C# NHibernate e 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>
E la connessione DB funziona bene senza l'eccezione ORA TNS_NAME). Devo impostare Origine dati su percorso completo con tnsnames.ora quando uso solo alias come TEST ottengo un messaggio "Eccezione: ORA-12154: TNS: impossibile risolvere l'identificativo di connessione specificato", ma se imposto il codice tns completo per l'alias -> tutto funziona alla grande.
Io uso hibernate.cfg.xml di file:
<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>
mio web.config file (ad client gestito aggiungere parte oracle.manageddataaccess.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>
Ho dedicato il server DB & I programmazione su Visual Studio 201 0 SP1 32bit (Win 7 64b). Ho installato il client Oracle 11g (versione 32 & 64b). Il file hibernate.cfg.xml è utilizzato in altri 3 progetti in pacchetti come "IntegrationTest", "Core" ecc :. Eseguo il programma (F5) con la modalità Debug e la piattaforma x86.
Nel progetto che uso:.
- NHibernate v 3.3.1.4000
- StructureMap v 2.6.4..
- e altri pacchetti non importanti
Cosa devo installare il pacchetto e come impostare il tutto? provo aggiungere di riferimento con Nuget
- ufficiale Oracle ODP.NET, driver Managed 12.1.22
- Oracle Data Provider for .NET (ODP ... 121.1.2
Quando installo alcuni di questi pacchetti (aggiungere riferimenti da Nuget) al mio progetto Sito web e modifico hibernate.cfg.xml a:
messaggio<property name="connection.driver_class">NHibernate.Driver.OracleManagedDriver</property>
ho ricevuto da VS Exception "Impossibile creare il driver dal NHibernate.Driver.OracleManagedDriver"
Se vado al Visualizza -> Server Exploler -> al dati Cennection e ho fissato un Aggiungi connessione. . . (vedi link -> Un semplice disco per il manuale .NET). Non ottengo un'opzione gestita ODP.NET, solo.NET provider di dati Framework opzione Oracle per, e quando provo connessione ottengo questo messaggio "BadImageFormatException. Ciò si verifica durante l'esecuzione in modalità a 64 bit con i componenti client Oracle a 32 bit installati"
La mia domanda è
- Cosa posso usare come riferimento (driver)?
- Come faccio a impostarlo?
Grazie mille
OracleManagedDriver è stata aggiunta in NHibernate 4.0. Manca da 3.4 e precedenti. – jahav
aggiorno a NHibernate 4.0.4, ma ho ancora ricevuto il messaggio "Impossibile creare il driver dal NHibernate.Driver.OracleManagedDriver" e in vista -.> Exploler Server -> per la connessione dati e ho impostato un Aggiungi connessione. . . Non vedo Opzione ODP.NET Managed Oracle Client, come posso trovare nome ** ** connection.driver_class da file nhibernate.cfg.xml, provo qualche diverse serie come NHibernateOracleExample.Driver.OracleDriver, NHibernateOracleExample o NHibernate.Driver .OracleDataClientDriver ma non so che cosa è un nome giusto per questo valore di impostazione –