Implantando e configurando o ODP.NET para funcionar sem instalação com o Entity Framework

Como você implanta e configura o ODP.NET para funcionar sem instalação com o Entity Framework?

A. Como implantar e configurar o Oracle.DataAccess.Client?

B. Como implantar e configurar o Oracle.ManagedDataAccess.Client?

C. O que você precisa fazer para tornar as compilações com EDMXs com o Oracle SSDLs funcionando?

D. O que você precisa instalar para suporte ao designer?

Esta resposta resume (espero) todas as etapas necessárias, muitas das quais documentadas em vários lugares on-line e podem economizar horas de pesquisa no Google.

A. Como implantar e configurar o Oracle.DataAccess.Client.

A.1. Baixe ODAC112030Xcopy_64bit.zip ou ODAC112030Xcopy_32bit.zip .

A.1.1. Extraia o conteúdo das seguintes pastas dentro do arquivo zip para a pasta bin / setup do aplicativo / host:

A.1.1.1. instantclient_11_2

A.1.1.2. odp.net4 \ bin \

A.1.1.3. odp.net4 \ odp.net \ bin \

A.1.1.4. odp.net4 \ odp.net \ PublisherPolicy \ 4 \

A.2. Adicione a seguinte seção ao início do app.config / web.config do seu aplicativo / host (se você já tiver um elemento configSections, adicione a seção a ele:

 

A.3. Adicione as seguintes seções ao final do app.config / web.config do seu aplicativo / host:

A.4. Da pasta ODAC112030Xcopy’s Executar:

 configure.bat odp.net4 somename 

Eu recomendo usar oraclehome112030_32 ou oraclehome112030_64 como o “somename” acima.

                    


B. Como implantar e configurar o Oracle.ManagedDataAccess.Client.

B.1. Faça o download do ODP.NET_Managed_1120350_Beta.zip

B.1.1. Extraia os seguintes arquivos na pasta bin / setup do seu aplicativo / host.

B.1.1.1. Oracle.ManagedDataAccess.dll

B.1.1.2. x64 \ Oracle.ManagedDataAccessDTC.dll ou x86 \ Oracle.ManagedDataAccessDTC.dll

B.2. Adicione a seguinte seção ao início do app.config / web.config do seu aplicativo / host (se você já tiver um elemento configSections, adicione a seção a ele:

  

B.3. Adicione as seguintes seções ao final do app.config / web.config do seu aplicativo / host:

                        


C. Para a construção:

C.1. Adicione esta seção ao app.config do seu conjunto EDMX:

(Não tentei isso com o Oracle. Gerenciado DataAccess.Client ainda)

             

C.2. Adicione um arquivo chamado Oracle.xsd ao mesmo assembly com o conteúdo:

                   

C.3. Adicione o XSD acima à lista de esquemas do app.config acima.

C.4. Se você estiver recebendo erros para mapeamentos booleanos durante a compilation, mesmo que a compilation esteja sendo bem-sucedida, adicione os mapeamentos app.config ao devenv.exe.config do Visual Studio.

C.5. Se você quiser usar Oracle.ManagedDataAccess.Client, edite o atributo data provider no EDMX manualmente antes de construir (não tentei isso) ou edite-o antes da criação do Context em tempo de execução e carregue o MSSL da cópia editada em vez de recurso (isso parece funcionar e eu também uso um truque semelhante para escolher qual MSSL carregar para provedores DB diferentes).


D. Para suporte ao designer:

D.1. Faça o download de win64_11gR2_client.zip ou win32_11gR2_client.zip e instale.

D.1.1. Selecione “Administrador” como tipo de instalação.

D.2. baixar ODT e instalar.


Eu tentei isso (A e B) em uma máquina em branco (VM) com o Windows 7 x64.

Este procedimento parece não funcionar com a versão x86 do Oracle.DataAccess.Client no Windows x64.

O procedimento parece funcionar com a versão x64 do Oracle.DataAccess.Client no Windows x64 e com as duas versões do Oracle.ManagedDataAccess.Client.

Atualizar:

Migrando do Oracle.DataAccess.Client para o Oracle.ManagedDataAccess.Client v12.1.0 (12c) da maneira mais fácil:

Editar: Link de download para o ODAC v12c Release 1 gerenciado .

Se você baixar winx64_12c_client.zip ou winnt_12c_client32.zip , extraia-os e instale (instalação completa (admin) ou instalação personalizada com o componente ODP.NET, a instalação do cliente não inclui este componente) em uma VM, você encontrará a pasta \odp.net\managed sob a pasta “client”.

Dentro desta pasta, você encontrará common\Oracle.ManagedDataAccess.dll , x86\Oracle.ManagedDataAccessDTC.dll e x64\Oracle.ManagedDataAccessDTC.dll .

Copie o Oracle.ManagedDataAccess.dll para o diretório bin e copie a plataforma correta do Oracle.ManagedDataAccessDTC.dll sob o diretório bin x86 / x64 ou, por cliente, instale a plataforma correta dessa DLL específica no GAC, mantendo o bin como AnyCPU.

A versão de assembly da nova DLL é 4.121.1.0 , o PublicKeyToken parece ser o mesmo (não verificá-lo, mas funcionou sem mim alterar).

Como antes, adicione esta seção à configuração / configSections do app.config (no início do arquivo app.config):

   

Seção:

  

e feche com:

  

Em system.data/DbProviderFactories (após o acima):

   

adicionar:

    

Para ter certeza de que você não tem nenhum conflito em seu machine.config

em seguida, adicione:

   

e feche com:

    

Observe que usei Oracle.DataAccess.Client como invariante em vez do Oracle.ManagedDataAccess.Client oficial. Isso porque não desejo alterar todos os meus EDMXs e recompilar os assemblies deles para que eles usem o novo cliente gerenciado em vez do antigo não gerenciado.

Em seguida, adicione a seguinte seção (após o acima) ao seu app.config

             

Isso passou no meu teste inicial, mas ainda não testei completamente.

Instale o Oracle Data Access Components (ODAC) de 32 bits com o Oracle Developer Tools para Visual Studio no link abaixo:

http://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.html