gpt4 book ai didi

.net - Oracle ODP.Net 与 Entity Framework 6 - 找不到 Entity Framework 数据库兼容提供程序

转载 作者:行者123 更新时间:2023-12-03 07:39:07 25 4
gpt4 key购买 nike

我正在尝试使用适用于 Oracle 数据库的 Entity Framework 6 构建 MVC 5 Web 应用程序,正在尝试使用 ODAC 12c 第 3 版,其中包括对 Entity Framework 6 Code First 和 Code First 迁移的支持; NuGet、.NET Framework 4.5.2;和 ODP.NET、托管驱动程序 XML DB。根据

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 Code First 一起使用?

最佳答案

我终于能够将 ODP 与 EF6 一起使用。

我做了以下操作以使其正常工作:-

首先安装 ODAC 12c 第 3 版,其中包括对 Entity Framework 6 Code First 和 Code First 迁移的支持; NuGet、.NET Framework 4.5.2;和 ODP.NET、托管驱动程序 XML DB。根据

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

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

Oracle.ManagedDataAccess.dll

Oracle.ManagedDataAccess.EntityFramework.dll

通过在程序包管理器控制台中运行以下命令,使用 NuGet 安装 EF6.1.1(可以通过工具->NuGet 程序包管理器 -> 程序包管理器控制台输入):

Install-Package EntityFramework -Version 6.1.1

并修改您的 web.config 或 web.config 以使用 Oracle.ManagedDataAccess ,通过添加 Provider 和有效的连接字符串,例如:

<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 ,您可以通过使用 Code First 使用 ADO.Net 实体模型添加模型来检查它是否有效

关于.net - Oracle ODP.Net 与 Entity Framework 6 - 找不到 Entity Framework 数据库兼容提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27656519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com