【问题标题】:The Entity Framework provider type 'Oracle.ManagedDataAccess.EntityFramework' could not be loaded无法加载实体框架提供程序类型“Oracle.ManagedDataAccess.EntityFramework”
【发布时间】:2016-07-14 20:28:47
【问题描述】:

我正在尝试使用 MVC 应用程序中的 Entity Framework v6 使用 Oracle Data Provider.NET (ODP.NET) 连接到 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 上下文时,我收到以下错误:

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

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

谢谢!

马丁

【问题讨论】:

  • 我已删除对 Nuget 包的引用,并将 DLL 直接复制到我的应用程序的 bin 文件夹中,并在那里设置对它们的引用。该应用程序现在引发以下错误:“无法找到请求的 .Net Framework 数据提供程序。它可能未安装。” (DLL 看起来已安装!我可以在引用中看到它,它显示在对象浏览器中)

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


【解决方案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>

【讨论】:

  • 如果它对任何人有帮助,我无法通过在连接字符串中指定 TNSNAMES、ORA 中的 TNS 名称来连接到 Oracle。我将以下内容粘贴到连接字符串中:
【解决方案2】:

可能是您的框架问题。请通过右键单击项目来检查您的框架-> 属性检查它是 4.5 版本。

然后右键单击Refrences--> Manage NuGet Package.. 转到nuget.org 并在搜索框中键入“Official Oracle ODP.NET”。并安装官方 Oracle ODP.NET、托管实体框架。
官方 Oracle ODP.NET,托管驱动程序。 .Net x84/x64 的 Oracle 数据提供程序。

谢谢你

【讨论】:

  • 你拯救了我的一天!谢谢!
猜你喜欢
  • 2012-12-11
  • 2015-12-12
  • 1970-01-01
  • 2017-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多