sql >> Base de Datos >  >> RDS >> Oracle

Conexión de Oracle usando ODP.NET con Enterprise Library DAAB

Espero que los siguientes pasos le den el resultado correcto.

Para reemplazar System.Data.OracleClient con Oracle.DataAccess.Client; y Oracle.DataAccess.Types

Descargue e instale la última versión de Microsoft Enterprise Library ver 3.1. Puede encontrarla aquí:- http://msdn2.microsoft.com/en-us/library/aa480453.aspx

Descargue e instale Oracle ODP.Net desde el sitio web de Oracle Su archivo DLL debe estar en :-C:\oracle\product\11.1.0\client_1\odp.net\bin\2.x\Oracle.DataAccess.dll

Cuando le solicite que instale la fuente, hágalo usando la casilla de verificación.

Si no ejecutó el msi en la siguiente ruta C:\Program Files\Microsoft Enterprise Library 3.1 - May 2007\src

El código de la biblioteca se almacena en la siguiente ruta C:\EntLib3Src\App Blocks

Realice una copia de seguridad de la carpeta src original en caso de que la necesite más adelante:C:\EntLib3Src\App Blocks\Src

Abra el archivo de solución EnterpriseLibrary.sln y acceda al proyecto de datos en Bloque de aplicación de acceso a datos

Agregue la referencia de Oracle.DataAccess.dll al proyecto de datos. Su archivo DLL debe estar en:- C:\oracle\product\11.1.0\client_1\odp.net\bin\2.x\Oracle.DataAccess.dll

Busque y reemplace lo siguiente [ En su lugar, puede descargar y usar la DLL actualizada que se adjunta a este artículo]

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

Encuentre:- using System.Data.OracleClient;
Reemplazar con:- using Oracle.DataAccess.Client; using Oracle.DataAccess.Types;

Archivo:- C:\EntLib3Src\App Blocks\Src\Data\Configuration\DbProviderMapping.cs Clase:- DbProviderMapping

Busque:- System.Data.OracleClient
Reemplazar con:- Oracle.DataAccess.Client

Archivo:- C:\EntLib3Src\App Blocks\Src\Data\Configuration\Manageability\ConnectionStringsManageabilityProvider.cs
Método:- AddAdministrativeTemplateDirectives
Buscar:- System.Data.OracleClient
Reemplazar con:- Oracle.DataAccess.Client

Archivo:- C:\EntLib3Src\App Blocks\Src\Data\Oracle\OracleDatabase.cs
Método:- AddParameter

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

Reemplazar 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 se reemplazó con OracleDbType como el tercer parámetro como el nombre del tipo en la API de odp.net

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

No tengo ni idea de lo que hace si alguien lo hace, por favor informe sobre la sesión de comentarios

Archivo:- C:\EntLib3Src\App Blocks\Src\Data\Oracle\OracleDatabase.cs
Buscar:- OracleType.Raw
Reemplazar con:- OracleDbType.Raw

Buscar:- param.OracleType
Reemplazar con:- param.OracleDbType

Buscar:- OracleType.Cursor
Reemplazar con:- OracleDbType.RefCursor

Buscar:- parameter.OracleType
Reemplazar con:- parameter.OracleDbType

Compile ahora y, si recibe un error, realice la siguiente Advertencia como error:comentario XML sobre:​​elimine el contenido del error resaltado/reemplácelo con el comentario correspondiente. Con suerte, debería compilarse bien ahora.

Ahora, la DLL que se generó al compilar el proyecto anterior se puede usar contra SqlServer y Oracle [ODP.Net]