Oracle
 sql >> Database >  >> RDS >> Oracle

Connessione di Oracle tramite ODP.NET con Enterprise Library DAAB

Spero che i seguenti passaggi ti diano il risultato corretto.

Per sostituire System.Data.OracleClient con Oracle.DataAccess.Client; e Oracle.DataAccess.Types

Scarica e installa l'ultima versione di Microsoft Enterprise Library ver 3.1. Puoi trovarla qui:- http://msdn2.microsoft.com/en-us/library/aa480453.aspx

Scarica e installa Oracle ODP.Net dal sito Web di Oracle Il tuo file DLL dovrebbe essere in :-C:\oracle\product\11.1.0\client_1\odp.net\bin\2.x\Oracle.DataAccess.dll

Quando ti viene chiesto di installare il sorgente, fallo usando la casella di controllo.

In caso contrario, eseguire il file msi nel seguente percorso C:\Programmi\Microsoft Enterprise Library 3.1 - maggio 2007\src

Il codice per la libreria viene archiviato nel seguente percorso C:\EntLib3Src\App Blocks

Fai un backup della cartella src originale nel caso in cui ne avessi bisogno in seguito - C:\EntLib3Src\App Blocks\Src

Apri il file della soluzione EnterpriseLibrary.sln e vai al progetto di dati in Blocco applicazione di accesso ai dati

Aggiungere il riferimento Oracle.DataAccess.dll al progetto di dati. Il tuo file DLL dovrebbe essere in:- C:\oracle\product\11.1.0\client_1\odp.net\bin\2.x\Oracle.DataAccess.dll

Cerca e sostituisci quanto segue [ Invece puoi scaricare e utilizzare la DLL aggiornata allegata a questo articolo]

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

Trova :- using System.Data.OracleClient;
Sostituisci con:- using Oracle.DataAccess.Client; using Oracle.DataAccess.Types;

File :- C:\EntLib3Src\App Blocks\Src\Data\Configuration\DbProviderMapping.cs Classe:- DbProviderMapping

Trova :- System.Data.OracleClient
Sostituisci con:- Oracle.DataAccess.Client

File:- C:\EntLib3Src\App Blocks\Src\Data\Configuration\Manageability\ConnectionStringsManageabilityProvider.cs
Metodo:- AddAdministrativeTemplateDirectives
Trova :- System.Data.OracleClient
Sostituisci con:- Oracle.DataAccess.Client

File :- C:\EntLib3Src\App Blocks\Src\Data\Oracle\OracleDatabase.cs
Metodo:- AddParameter

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

Sostituisci con:- 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)

Motivo:- OracleType sostituito con OracleDbType come terzo parametro in quanto il nome del tipo nell'API odp.net

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

Non ho idea di cosa faccia se qualcuno lo fa, per favore, informa sulla sessione di feedback

File:- C:\EntLib3Src\App Blocks\Src\Data\Oracle\OracleDatabase.cs
Trova:- OracleType.Raw
Sostituisci con:- OracleDbType.Raw

Trova:- param.OracleType
Sostituisci con:- param.OracleDbType

Trova:- OracleType.Cursor
Sostituisci con:- OracleDbType.RefCursor

Trova:- parameter.OracleType
Sostituisci con:- parameter.OracleDbType

Compila ora e se ricevi un errore, fai il seguente Avviso come errore:Commento XML su - Rimuovi il contenuto dell'errore evidenziato / sostituiscilo con un commento approp Si spera che ora dovrebbe essere compilato correttamente.

Ora la DLL che è stata generata compilando il progetto sopra può essere utilizzata sia contro SqlServer che contro Oracle [ODP.Net]