sql >> Databasteknik >  >> RDS >> Oracle

Ansluter Oracle med ODP.NET med Enterprise Library DAAB

Jag hoppas att följande steg kommer att ge dig rätt resultat.

För att ersätta System.Data.OracleClient med Oracle.DataAccess.Client; och Oracle.DataAccess.Types

Ladda ner och installera den senaste versionen av Microsoft Enterprise Library ver 3.1 Kan hittas här:- http://msdn2.microsoft.com/en-us/library/aa480453.aspx

Ladda ner och installera Oracle ODP.Net från Oracles webbplats. Din DLL-fil bör vara i:-C:\oracle\product\11.1.0\client_1\odp.net\bin\2.x\Oracle.DataAccess.dll

När du uppmanas att installera källan gör du det genom att använda kryssrutan.

Om du inte körde msi på följande sökväg C:\Program Files\Microsoft Enterprise Library 3.1 - maj 2007\src

Koden för biblioteket lagras på följande sökväg C:\EntLib3Src\App Blocks

Ta en säkerhetskopia av den ursprungliga src-mappen om du skulle behöva dem senare - C:\EntLib3Src\App Blocks\Src

Öppna lösningsfilen EnterpriseLibrary.sln Och gå till dataprojektet under Data Access Application Block

Lägg till Oracle.DataAccess.dll-referens till dataprojektet. Din DLL-fil bör vara i:- C:\oracle\product\11.1.0\client_1\odp.net\bin\2.x\Oracle.DataAccess.dll

Sök och ersätt följande [Istället kan du ladda ner och använda den uppdaterade DLL-filen som är bifogad den här artikeln]

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

Hitta :- using System.Data.OracleClient;
Ersätt med:- using Oracle.DataAccess.Client; using Oracle.DataAccess.Types;

Fil :- C:\EntLib3Src\App Blocks\Src\Data\Configuration\DbProviderMapping.cs Klass:- DbProviderMapping

Hitta :- System.Data.OracleClient
Ersätt med:- Oracle.DataAccess.Client

Fil :- C:\EntLib3Src\App Blocks\Src\Data\Configuration\Manageability\ConnectionStringsManageabilityProvider.cs
Metod:- AddAdministrativeTemplateDirectives
Hitta :- System.Data.OracleClient
Ersätt med:- Oracle.DataAccess.Client

Fil :- C:\EntLib3Src\App Blocks\Src\Data\Oracle\OracleDatabase.cs
Metod:- AddParameter

Hitta :- 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)

Ersätt med:- 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)

Orsak:- OracleType ersatt med OracleDbType som tredje parameter som typnamnet i odp.net API

Fil:- C:\EntLib3Src\App Blocks\Src\Data\Oracle\OracleDatabase.cs
Ta bort:- [OraclePermission(SecurityAction.Demand)] -

Har inte en aning om vad det gör om någon gör det, vänligen informera om feedbacksessionen

Fil:- C:\EntLib3Src\App Blocks\Src\Data\Oracle\OracleDatabase.cs
Sök:- OracleType.Raw
Ersätt med:- OracleDbType.Raw

Hitta:- param.OracleType
Ersätt med:- param.OracleDbType

Hitta:- OracleType.Cursor
Ersätt med:- OracleDbType.RefCursor

Hitta:- parameter.OracleType
Ersätt med:- parameter.OracleDbType

Kompilera nu och om du får ett fel, gör följande Varning som fel:XML-kommentar på - Ta bort det markerade felinnehållet / ersätt det med lämplig kommentar. Förhoppningsvis borde det kompileras bra nu.

Nu kan DLL-filen som skapades genom att kompilera ovanstående projekt användas mot både SqlServer och Oracle [ODP.Net]



  1. MySQL Rekursiv CTE-tabell finns inte

  2. Beräknar skillnaden på datum och tid rad mellan rader i samma tabell

  3. Finns det något sätt att gå igenom en tabellvariabel i TSQL utan att använda en markör?

  4. Materialiserad vy snabbuppdatering med HAVING-klausul?