Oráculo ODP.Net com o Entity Framework 6-Entity framework database compatível provedor não pôde ser encontrado

estou a tentar construir uma aplicação web MVC 5 com o Entity Framework 6 que funciona na Base de Dados Oracle, estou a tentar usar o ODAC 12c Release 3 que inclui o suporte para o código do Entity Framework 6 em primeiro lugar e as primeiras migrações de código; NuGet,. NET Framework 4.5.2; e ODP.NET, controlador XML DB. Como por

Http://www.oracle.com/technetwork/topics/dotnet/whatsnew/index.html

tenho a actualização da edição comunitária VS 2013 4 .

estou a tentar adicionar um modelo usando ADO.Net Modelo De Dados De Entidade, Com Código Primeiro.

Tenho o seguinte configurado na minha Web.config

    <configSections>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    <section name="Oracle.ManagedDataAccess.Client"
             type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />


  </configSections>

  <entityFramework>
    <contexts>
      <context type="Tamayz.Context.Default, Tamayz.Context">
        <databaseInitializer type="MyProject.Context.Config.ContextInitializer, MyProject.Context" />
      </context>
    </contexts>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
      <provider invariantName="Oracle.ManagedDataAccess.Client" 
                type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices, Oracle.ManagedDataAccess.EntityFramework, Version=6.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
    </providers>
  </entityFramework>
Também adicionei Oracle.ManagedDataAccess versão 4.121.2.0 como referência e reconstruir a solução.

tentei agora adicionar um modelo usando ADO.Net modelo de dados de entidade, com código primeiro. mas estou recebendo a seguinte mensagem na última tela do assistente:

o seu projecto refere a última versão da estrutura da entidade; no entanto, uma base de dados da estrutura da entidade Não foi possível encontrar o fornecedor compatível com esta versão para a sua ligação...

como poderia configurar adequadamente a minha aplicação para poder usar o ODAC com o código EF6 primeiro ?

Author: Wasef Anabtawi, 2014-12-26

7 answers

Finalmente consegui utilizar ODP com EF6.

Fiz o seguinte para que funcionasse:

Primeiro a instalar o ODAC 12c Release 3, que inclui o suporte para o primeiro código da entidade Framework 6 e as primeiras migrações do Código; NuGet,. NET Framework 4.5.2; e ODP.NET, controlador XML DB. De acordo com

Http://www.oracle.com/technetwork/topics/dotnet/whatsnew/index.html

Adicionando duas referências, às referências do meu projecto e são : Oráculo.Controleddataaccess.dll Oráculo.Controleddataaccess.Quadro de direitos.dll

Instalar o EF6.1.1 usando o NuGet, executando o seguinte comando na consola do Gestor de pacotes( poderá introduzi-lo por Ferramentas - >Gestor de Pacotes NuGet - > Consola do Gestor de pacotes):

Install-Package EntityFramework -Version 6.1.1

E modificar a sua web.config ou web.configuração para usar Oráculo.ManagedDataAccess, adicionando o fornecedor e um texto de ligação válido, por exemplo:

<configSections>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    <section name="Oracle.ManagedDataAccess.Client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
  </configSections>
  <entityFramework>
    <contexts>
      <context type="App.Context.Default, App.Context">
        <databaseInitializer type="MyProject.Context.Config.ContextInitializer, MyProject.Context" />
      </context>
    </contexts>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
      <provider invariantName="Oracle.ManagedDataAccess.Client" type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices, Oracle.ManagedDataAccess.EntityFramework, Version=6.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>
  <connectionStrings>
    <add name="Default" providerName="Oracle.ManagedDataAccess.Client" connectionString="DATA SOURCE=XE;USER ID=User" />
  </connectionStrings>

Reconstrua a sua aplicação como x86, e comece a utilizar EF6 , você pode verificar se funciona adicionando um modelo usando ADO.Net modelo de entidade que utiliza o Código primeiro

 39
Author: Wasef Anabtawi, 2014-12-27 19:29:01
{[[2]} só para complementar, tentei tudo, mas no meu caso foi resolvido definindo o " defaultConnectionFactory {[[4]}", Assim:
<entityFramework>
<defaultConnectionFactory type="Oracle.ManagedDataAccess.EntityFramework.OracleConnectionFactory, Oracle.ManagedDataAccess.EntityFramework">
</defaultConnectionFactory>
<providers>
  <provider invariantName="Oracle.ManagedDataAccess.Client" type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices, Oracle.ManagedDataAccess.EntityFramework, Version=6.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</providers>
</entityFramework>

Encontrei a solução aqui: https://community.oracle.com/message/13114643#13114643

Espero que ajude alguém...
 17
Author: Fernando Meneses Gomes, 2016-01-26 16:25:50
Para mim, instalar estes pacotes Nuget funciona. https://www.nuget.org/packages/Oracle.ManagedDataAccess.EntityFramework/
 2
Author: Syaiful Nizam Yahya, 2018-05-03 08:32:23
Tive um problema no visual studio 2015. No meu caso, foi devido ao framework 6.1.3 da Entidade não ser apoiado. Depois de baixar para 6.1.2 está a funcionar.
 1
Author: Asier Azkuenaga, 2017-02-27 13:13:43
A juntar-se tarde a este tópico. Um par de pessoas atualizadas para VS2017 (o resto em nossa equipe ainda estão usando VS2015 e planejando atualizar para VS2017). Um dos nossos projectos era referenciar a Oracle.Controleddataaccess.dll ver4. 121.2.0 & Oracle.Controleddataaccess.Quadro de direitos.dll ver6. 121.2.0 via dlls referenciados localmente.

Todas as estações de trabalho da dev tinham controladores oracle-odac ver4.122.1.0 e ver6.122.1.0 instalados em todo o sistema (GAC, etc.).

Este tipo de instalação estava a funcionar muito bem. VS2015 mas por alguma razão estranha não estava a funcionar para VS2017. O culpado do VS2017 foi o oráculo.Controleddataaccess.dll & Oracle.Controleddataaccess.Quadro de direitos.dll onde não foi copiado para a pasta de saída do nosso nível de entrada asp.net project unless and until the locally referenced dlls where also updated to ver4.121.2.0 & ver6.121.2.0. Não tivemos tempo de investigar mais isto, mas a solução acima funcionou para o VS2017.
 1
Author: xDisruptor, 2017-11-20 10:52:42
Tentei tudo na resposta seleccionada, mas não consegui criar os meus modelos. Eu tive o mesmo problema que @WAQ nos comentários da resposta selecionada, onde eu não recebi a mensagem de erro, mas ele pulou para a seleção da tabela. Estou a usar VS2017 15.7.4, Windows 10, Oracle 12g e EF 6.1.1. Decidi rebaixar o número e o oráculo.Gereddataaccess ' de 18.3.0 a 12.2.1100 e finalmente funcionou!
 1
Author: chakeda, 2018-08-31 21:12:56

Também baixei para 6.1.2 e todos os meus problemas com a adição de um modelo de entidade desapareceram. Parece que tanto 2015 quanto 2017 Visual Studio têm problemas com versões maiores do que isso. A Oráculo precisa de ver isto o mais rápido possível.

 0
Author: Andy Middleditch, 2018-09-26 09:07:44