无法加载实体框架提供程序类型“Oracle.ManagedDataAccess.EntityFramework”

时间:2015-03-10 18:57:48

标签: asp.net-mvc entity-framework odp.net

我正在尝试使用Oracle数据提供程序.NET(ODP.NET)在MVC应用程序中使用Entity Framework v6连接到Oracle。

我从这里安装了ODP.NET: https://www.nuget.org/packages/odp.net.entityframework/6.121.1-beta

我已按如下方式配置了我的web.config文件:

<connectionStrings>
    <add name="MyDB" connectionString="User ID=MyUser;Password=MyPassword;Data Source=MyDatabase; Persist Security Info=False" providerName="Oracle.ManagedDataAccess" />
</connectionStrings>



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

然而,当我尝试调用我的EF上下文时,我收到以下错误:

  

实体框架提供程序类型'Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices,Oracle.ManagedDataAccess.EntityFramework,Version = 6.121.1.0,Culture = neutral,PublicKeyToken = 89b483f429c47342'在ADO.NET提供程序的应用程序配置文件中注册无法加载不变名称'Oracle.ManagedDataAccess.EntityFramework'。确保使用了程序集限定名称,并且程序集可用于正在运行的应用程序

我花了很多时间寻求帮助。非常感谢任何帮助!

谢谢!

马丁

2 个答案:

答案 0 :(得分:1)

将此部分添加到web.config以及上述步骤似乎已修复此问题:

<system.data>

    <DbProviderFactories>

      <add name="ODP.NET, Managed Driver"
           invariant="Oracle.ManagedDataAccess.Client"
           description="Oracle Data Provider for .NET, Managed Driver"
           type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
    </DbProviderFactories>

</system.data>

答案 1 :(得分:1)

可能存在您的框架问题。请右键单击项目检查您的框架 - &gt;属性检查它是4.5版本。

然后右键点击Refrences - &gt;管理NuGet包..转到nuget.org并输入&#34; 官方Oracle ODP.NET &#34;在搜索框中。并安装官方Oracle ODP.NET,托管实体框架 官方Oracle ODP.NET,托管驱动程序。 适用于.Net x84 / x64的Oracle数据提供程序。

感谢你