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 ?
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.dllInstalar 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
<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...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.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.