Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Łączenie Oracle za pomocą ODP.NET z Enterprise Library DAAB

Mam nadzieję, że poniższe kroki dadzą Ci poprawny wynik.

Aby zastąpić System.Data.OracleClient Oracle.DataAccess.Client; i Oracle.DataAccess.Types

Pobierz i zainstaluj najnowszą wersję Microsoft Enterprise Library w wersji 3.1. Można ją znaleźć tutaj:- http://msdn2.microsoft.com/en-us/library/aa480453.aspx

Pobierz i zainstaluj Oracle ODP.Net ze strony Oracle Twój plik DLL powinien znajdować się w :-C:\oracle\product\11.1.0\client_1\odp.net\bin\2.x\Oracle.DataAccess.dll

Gdy pojawi się monit o zainstalowanie źródła, zrób to, zaznaczając pole wyboru.

Jeśli nie uruchomiłeś msi w następującej ścieżce C:\Program Files\Microsoft Enterprise Library 3.1 - maj 2007\src

Kod biblioteki jest przechowywany w następującej ścieżce C:\EntLib3Src\App Blocks

Zrób kopię zapasową oryginalnego folderu src na wypadek, gdyby były potrzebne później - C:\EntLib3Src\App Blocks\Src

Otwórz plik rozwiązania EnterpriseLibrary.sln I przejdź do projektu danych w sekcji Data Access Application Block

Dodaj odwołanie Oracle.DataAccess.dll do projektu danych. Twój plik DLL powinien znajdować się w:- C:\oracle\product\11.1.0\client_1\odp.net\bin\2.x\Oracle.DataAccess.dll

Wyszukaj i zastąp następujące [ Zamiast tego możesz pobrać i użyć zaktualizowanej biblioteki DLL dołączonej do tego artykułu]

Plik :- C:\EntLib3Src\App Blocks\Src\Data\Oracle\OracleDatabase.cs
Plik :- C:\EntLib3Src\App Blocks\Src\Data\DatabaseConfigurationView.cs
Plik :- C :\EntLib3Src\App Blocks\Src\Data\Oracle\OracleDataReaderWrapper.cs

Znajdź :- using System.Data.OracleClient;
Zastąp:- using Oracle.DataAccess.Client; using Oracle.DataAccess.Types;

Plik :- C:\EntLib3Src\App Blocks\Src\Data\Configuration\DbProviderMapping.cs Klasa:- DbProviderMapping

Znajdź :- System.Data.OracleClient
Zastąp:- Oracle.DataAccess.Client

Plik :- C:\EntLib3Src\App Blocks\Src\Data\Configuration\Manageability\ConnectionStringsManageabilityProvider.cs
Metoda:- AddAdministrativeTemplateDirectives
Znajdź :- System.Data.OracleClient
Zastąp:- Oracle.DataAccess.Client

Plik :- C:\EntLib3Src\App Blocks\Src\Data\Oracle\OracleDatabase.cs
Metoda:- AddParameter

Znajdź :- public void AddParameter(OracleCommand command, string name, OracleType oracleType, int size, ParameterDirection direction, bool nullable, byte precision, byte scale, string sourceColumn, DataRowVersion sourceVersion, object value)

Zamień na:- public void AddParameter(OracleCommand command, string name, OracleDbType oracleType, int size, ParameterDirection direction, bool nullable, byte precision, byte scale, string sourceColumn, DataRowVersion sourceVersion, object value)

Powód:— OracleType zastąpiono OracleDbType jako trzecim parametrem, ponieważ nazwa typu w odp.net API

Plik:- C:\EntLib3Src\App Blocks\Src\Data\Oracle\OracleDatabase.cs
Usuń:- [OraclePermission(SecurityAction.Demand)] -

Nie mam pojęcia, co to zrobi, jeśli ktoś to zrobi, proszę o krótką sesję zwrotną

Plik:- C:\EntLib3Src\App Blocks\Src\Data\Oracle\OracleDatabase.cs
Znajdź:- OracleType.Raw
Zastąp:- OracleDbType.Raw

Znajdź:- param.OracleType
Zastąp:- param.OracleDbType

Znajdź:- OracleType.Cursor
Zastąp:- OracleDbType.RefCursor

Znajdź:- parameter.OracleType
Zastąp:- parameter.OracleDbType

Skompiluj teraz, a jeśli pojawi się błąd, wykonaj następujące Ostrzeżenie jako błąd :Komentarz XML dotyczący - Usuń podświetloną treść błędu / zastąp ją odpowiednim komentarzem.

Teraz biblioteka DLL wygenerowana przez kompilację powyższego projektu może być używana zarówno przeciwko SqlServer, jak i Oracle [ODP.Net]



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORACLE SQL:Uzupełnij brakujące daty

  2. dlaczego zapytanie trwa zbyt długo

  3. Używanie NVL dla wielu kolumn — Oracle SQL

  4. błąd nieprawidłowego wyzwalacza

  5. Instrukcja ACCEPT w Oracle PL SQL