oracle - 无法找到具有 Entity Framework 6 Entity Framework 数据库兼容提供程序的Oracle ODP.Net

  显示原文与译文双语对照的内容
0 0

我正在尝试使用 Entity Framework 6来构建一个 MVC 5 Web应用程序,该应用程序在Oracle数据库上工作,正在尝试使用 ODAC 12c 发布 3,它包括对 Entity Framework 6代码的支持,并首先迁移;NuGet,.NET 框架 4.5.2 ;和 ODP.NET, 托管驱动程序。 按每

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

我有 vs 2013社区版更新 4.

我正在尝试使用 ADO.NET 实体数据模型添加模型,代码首先。

我的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>

我还添加了 Oracle.ManagedDataAccess 版本 4.121.2.0 作为参考并重新构建了。

我现在尝试使用 ADO.NET 实体数据模型添加模型,代码首先。 但在向导的最后一个屏幕中,我得到了以下消息:

你的项目引用了最新版本的Entity Framework ;但是,无法为你的连接找到与这里版本兼容的Entity Framework 数据库提供程序。

如何正确配置我的应用程序,以便能够首先将ODAC与EF6代码一起使用?

时间:原作者:1个回答

0 0

我终于能够把ODP和EF6一起使用了。

我做了以下的工作:-

首先安装 ODAC 12c 版本 3,其中首先包括对 Entity Framework 6代码的支持和代码第一迁移;NuGet,.NET 框架 4.5.2 ;和 ODP.NET, 管理驱动程序。 按每

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

在我的项目引用中添加两个引用,它们是:

Oracle.ManagedDataAccess.dll

Oracle.ManagedDataAccess.EntityFramework.dll

在软件包管理器控制台( 你可以通过 Tools-> NuGet软件包管理器-> 软件包管理器控制台输入它) 中运行以下命令,使用NuGet安装 EF6.1.1:

Install-Package EntityFramework -Version 6.1.1

通过添加提供程序和有效的连接字符串例如修改你的Web.Config 或者 Web.Config 以使用 Oracle.ManagedDataAccess,例如:

<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>

将你的应用程序重新构建为 x86,然后开始使用 EF6,你可以通过使用代码首先使用 ADO.NET 实体模型添加模型来检查

原作者:
...