Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Conectando Oracle usando ODP.NET com Enterprise Library DAAB


Espero que as etapas a seguir lhe dêem o resultado correto.

Para substituir System.Data.OracleClient por Oracle.DataAccess.Client; e Oracle.DataAccess.Types

Baixe e instale a versão mais recente do Microsoft Enterprise Library ver 3.1 Pode ser encontrada aqui:- http://msdn2.microsoft.com/en-us/library/aa480453.aspx

Baixe e instale o Oracle ODP.Net do site da Oracle Seu arquivo DLL deve estar em :-C:\oracle\product\11.1.0\client_1\odp.net\bin\2.x\Oracle.DataAccess.dll

Quando ele solicitar que você instale a fonte, faça isso usando a caixa de seleção.

Se você não executou o msi no seguinte caminho C:\Program Files\Microsoft Enterprise Library 3.1 - May 2007\src

O código para a biblioteca é armazenado no seguinte caminho C:\EntLib3Src\App Blocks

Faça um backup da pasta src original caso precise deles mais tarde - C:\EntLib3Src\App Blocks\Src

Abra o arquivo de solução EnterpriseLibrary.sln e acesse o projeto de dados em Data Access Application Block

Adicione a Referência Oracle.DataAccess.dll ao Projeto de Dados. Seu arquivo DLL deve estar em:- C:\oracle\product\11.1.0\client_1\odp.net\bin\2.x\Oracle.DataAccess.dll

Pesquise e substitua o seguinte [Em vez disso, você pode baixar e usar a DLL atualizada anexada a este artigo]

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


Encontre :- using System.Data.OracleClient;
Substitua por:- using Oracle.DataAccess.Client; using Oracle.DataAccess.Types;

Arquivo :- C:\EntLib3Src\App Blocks\Src\Data\Configuration\DbProviderMapping.cs Class:- DbProviderMapping


Encontre :- System.Data.OracleClient
Substituir por:- Oracle.DataAccess.Client


Arquivo :- C:\EntLib3Src\App Blocks\Src\Data\Configuration\Manageability\ConnectionStringsManageabilityProvider.cs
Método:- AddAdministrativeTemplateDirectives
Localizar:- System.Data.OracleClient
Substituir por:- Oracle.DataAccess.Client


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


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


Substitua por:- 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 substituído por OracleDbType como terceiro parâmetro, pois o nome do tipo na API odp.net


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


Não tenho ideia do que isso faz se alguém fizer, por favor, informe sobre a sessão de feedback


Arquivo:- C:\EntLib3Src\App Blocks\Src\Data\Oracle\OracleDatabase.cs
Localizar:- OracleType.Raw
Substituir por:- OracleDbType.Raw


Localizar:- param.OracleType
Substituir por:- param.OracleDbType


Localizar:- OracleType.Cursor
Substituir por:- OracleDbType.RefCursor


Localizar:- parameter.OracleType
Substituir por:- parameter.OracleDbType


Compile agora e se você receber um erro, faça o seguinte Warning as Error:XML comment on - Remova o conteúdo do erro realçado / substitua-o por um comentário apropriado Espero que ele compile bem agora.

Agora a DLL que foi gerada compilando o projeto acima pode ser usada tanto no SqlServer quanto no Oracle [ODP.Net]