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]