Mam duży projekt, który kryje kolejne 16 projektów (testy, Webs & App jak Core, Email itp:). Używam C# MVC4 do mojego głównego projektu strony internetowej. Jeśli używam non klienta zarządzanego trzeba mi zrobić folder projektu /bin nagrany biblioteka Oracle.DataAccess.dll i wszystko działa poprawnie (muszę ustawić (zmiany) w pliku web.config -> param:C# NHibernate i klient zarządzany przez Oracle
<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>
Połączenie DB działa poprawnie bez wyjątku ORA z wyjątkiem TNS_NAME). Muszę ustawić źródło danych na pełną ścieżkę z tnsnames.ora, gdy używam tylko aliasu takiego jak TEST, otrzymuję komunikat "Wyjątek: ORA-12154: TNS: nie można rozwiązać określonego identyfikatora połączenia", ale jeśli ustawię pełny kod tns dla aliasu -> wszystko działa świetnie.
używam hibernate.cfg.xml plik:
<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>
My Web.config pliku (dla klienta zarządzanego dodać oracle.manageddataaccess.client część):
<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>
Mam dedykowanego serwera DB & I programowania na Visual Studio 201 0 SP1 32bit (Win 7 64b). Zainstalowałem klienta Oracle 11g (wersja 32 & 64b). Plik hibernate.cfg.xml jest używany w innym 3 projekcie w pakiecie takim jak "IntegrationTest", "Core" itp:. Uruchamiam program (F5) z trybem debugowania i platformą x86.
W projekcie używam.
- NHibernate v 3.3.1.4000
- StructureMap v 2.6.4..
- i inne nieistotne Pakiety
Co muszę zainstalować pakiet i jak to ustawić? I Spróbuj dodać odniesienie z Nuget
- Dziennik Oracle ODP.NET udało Kierowca 01.12.22
- danych Oracle Provider for .NET (ODP ... 121.1.2
Po zainstalowaniu niektóre z tych pakietów (dodaj referencje od Nuget) do mojego projektu WWW i zmienić hibernate.cfg.xml do:
<property name="connection.driver_class">NHibernate.Driver.OracleManagedDriver</property>
dostałam wiadomość od VS Exception "Nie można utworzyć sterownik z NHibernate.Driver.OracleManagedDriver"
jeśli pójdę do Widok -> Server Exploler -> do Danych Cennection i ustawić Dodaj połączenie. . . (patrz link -> Łatwy dojazd do .NET Manual). Nie dostaję tylko opcji ODP.NET Managed.NET dostawca danych Ramy opcji Oracle, a przy próbie połączenia i ten komunikat „BadImageFormatException. To nastąpi podczas pracy w trybie 64-bitowym z 32-bitowych komponentów Oracle Client zainstalowany”
Moje pytanie brzmi
- Co mogę użyć dla odniesienia (sterownik)?
- Jak mogę to ustawić?
Thanks a lot
OracleManagedDriver został dodany w NHibernate 4.0. Brakuje go w wersji 3.4 i poprzednich. – jahav
Aktualizuję do NHibernate 4.0.4., Ale nadal pojawia się komunikat "Nie można utworzyć sterownika z NHibernate.Driver.OracleManagedDriver", aw widoku -> Server Exploler -> do połączenia danych i ustawię Dodaj połączenie. . . Nie widzę opcji klienta Oracle ODP.NET, Jak znaleźć nazwę ** connection.driver_class ** z pliku nhibernate.cfg.xml, próbuję kilka zestawów takich jak NHibernateOracleExample.Driver.OracleDriver, NHibernateOracleExample lub NHibernate.Driver .OracleDataClientDriver, ale nie wiem, jaka jest właściwa nazwa dla tej wartości ustawienia –