有点难过这个......
我在实体框架和Oracle上设置Code First时收到以下错误...
找不到ADO.NET提供程序的实体框架提供程序 不变名称' Oracle.ManagedDataAccess.Client'。确保 提供商已在' entityFramework'中注册部分 应用程序配置文件。
通过以下设置...
实体框架6.1.1
ODAC 12c第3版
有关如何解决此问题的任何想法?
我已经在下面包含了app.config文件...
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --></configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<connectionStrings>
<add name="Context" connectionString="DATA SOURCE=****;PASSWORD=****;PERSIST SECURITY INFO=True;POOLING=False;USER ID=SYSTEM" providerName="Oracle.ManagedDataAccess.Client" />
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
</configuration>
答案 0 :(得分:1)
因为您在connectionString中使用了providerName Oracle.ManagedDataAccess.Client 。您需要在以下部分添加一行来定义它:
<providers>
<provider invariantName="Oracle.ManagedDataAccess.Client" type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices,OracleManagedDataAccess.EntityFramework" />
</providers>
答案 1 :(得分:0)
我试图做同样的事情。但也没与我合作,你有没有成功实现它?
尝试将提供程序添加到配置文件中:
<providers>
<provider invariantName="Oracle.ManagedDataAccess.Client"
type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices, Oracle.ManagedDataAccess.EntityFramework, Version=6.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</providers>
答案 2 :(得分:0)
今天因为同样的错误搞乱了几个小时后我发现我错过了选择正确的T4模板(参见第3步)
安装“ODAC 12c第3版和适用于Visual Studio的Oracle Developer Tools”
顺便说一下。我在Oracle website上找到了这个说明:
注意:如果已在计算机级别上安装了ODAC 12c版本3,则在尝试使用Entity Framework Model-First生成数据库脚本时将看到错误。要解决此问题,请使用晚于此版本的ODAC版本,或使用“在机器级别配置ODP.NET”复选框重新安装ODAC 12c版本3。未选中。
将这些nuget包添加到您的项目中:
这些还会添加一些依赖包并将必要的配置插入App.config。
在生成数据库之前,请在生成数据库之前在EDMX模型的属性中选择正确的T4模板。
预先选择的模板是为MS SQL Server设计的(我猜)。