解决具有固定名称“Oracle.ManagedDataAccess.Client”的 ADO.NET 提供程序未在计算机或应用程序配置文件中注册或无法加载。

1、检查引用中是是否有这两个引用,没有的话需要添加,

(注意:两个引用文件的版本(在NuGet管理器中下载时的版本)必须保持一致,比如在NuGet管理器中下载时的版本都是19.7.0, Oracle.ManagedDataAccess版本号是4.122.19.1,对应的Oracle.ManagedDataAccess.EntityFramework版本号是6.122.19.1)

2、检查app.config中是否有下面的内容,没有的话添加进去。注意:版本号需要与引用的版本号保持一致。

  <configSections>
    <section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c47342" />
  </configSections>

  <providers>
    <provider invariantName="Oracle.ManagedDataAccess.Client" type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices, Oracle.ManagedDataAccess.EntityFramework, Version=6.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c47342" />
  </providers>

  <system.data>
    <DbProviderFactories>
      <remove invariant="Oracle.ManagedDataAccess.Client" />
      <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.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c47342" />
    </DbProviderFactories>
  </system.data>

 3、安装ODTforVS2017,我用的是vs2017,所以安装这个版本。

(注意:版本必须与上面的引用文件版本保持一致,若三者版本不一致,会报错)

Oracle Developer Tools for Visual Studio 2017 MSI Installericon-default.png?t=N7T8https://www.oracle.com/database/technologies/dotnet-odacmsi-vs2017-downloads.htmlPS:如果以上3个步骤完成,还是报错具有固定名称“Oracle.ManagedDataAccess.Client”的 ADO.NET 提供程序未在计算机或应用程序配置文件中注册或无法加载

那么,找到以下路径文件:C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config

 记得修改前备份。 注意版本号的匹配。

将下面这段配置文件加入<configSections>节点下:

<section name="oracle.unmanageddataaccess.client" type="OracleInternal.Common.CustomSectionHandler, Oracle.DataAccess, Version=4.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c47342" />
<section name="oracle.dataaccess.client" type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c47342" />

将以下配置加入<system.data><DbProviderFactories>节点下:

<add name="ODP.NET, Unmanaged Driver" invariant="Oracle.DataAccess.Client" description="Oracle Data Provider for .NET, Unmanaged Driver" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=4.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c47342" />
<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.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c47342" />

 配置完成后重启vs即可打开.edmx文件。

4、如果报错: Type guid raw 未使用命名空间或别名进行限定。只有基元类型才可以在不限定的情况下使用。

检查引用中是否有这个引用,没有的话添加进去。

5、重启vs2017就可以打开.edmx文件了。

6、从数据库更新模型报错:无法将运行时连接字符串转换为设计时等效项,没有为提供程序“mysql.data.mysqlclient”安装为设计目的启用visual studio以便与数据库进行通信所需要的库

关闭VS,找到ODTforVS2017的安装路径,运行Oracle.VsDevTools.15.0.vsi重新安装后,重启VS程序,即可解决。(如果不行就重启电脑)

7、新建ADO.NET 实体数据模型向导,选择oracle数据库连接后点击下一步就闪退

找到ODTforVS2017的安装路径,找到Oracle.ManagedDataAccess.dll文件,

查看Oracle.ManagedDataAccess.dll文件的版本号 ,

然后对比引用中Oracle.ManagedDataAccess的版本号,二者必须保持一致。

同时Oracle.ManagedDataAccess.EntityFramework的版本也要与Oracle.ManagedDataAccess的版本保持一致。

如果不一致,删除引用后,从NuGet管理器中更新对应的版本。 

 最后,修改app.config文件中对应的版本号,就可以解决了。

  <configSections>
    <section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.122.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
  </configSections>

  <providers>
    <provider invariantName="Oracle.ManagedDataAccess.Client" type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices, Oracle.ManagedDataAccess.EntityFramework, Version=6.122.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
  </providers>

  <system.data>
    <DbProviderFactories>
      <remove invariant="Oracle.ManagedDataAccess.Client" />
      <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.122.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
    </DbProviderFactories>
  </system.data>

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
oracle.manageddataaccess.client.dll是Oracle调用数据库的托管驱动程序的一部分。要下载oracle.manageddataaccess.client.dll,首先需要确保已经安装了Oracle Data Access Components (ODAC)。在下载ODAC之前,需要先注册成为Oracle的用户,并同意相关的许可协议。 1. 访问Oracle官方网站:前往Oracle官方网站,可以通过搜索引擎找到官方网站的链接。在网站上导航到“下载”或“产品”页面,找到ODAC部分。 2. 选择正确的版本:在ODAC部分,您将看到不同的版本和适用于不同操作系统和开发环境的选择。选择与您正在使用的环境相匹配的版本,通常会有特定的下载链接。 3. 下载ODAC安装程序:单击适用于您的环境的下载链接后,您将被重定向到一个下载页面,或直接启动下载过程。保存安装程序到您的计算机上的任意位置。 4. 运行安装程序:找到您保存的ODAC安装程序,双击运行。按照安装向导的步骤进行操作,包括接受许可协议、选择安装位置和选择要安装的组件等。确保选择安装“Oracle Managed Access Client”组件。 5. 完成安装:完成ODAC安装过程后,您将获得oracle.manageddataaccess.client.dll文件。该文件通常位于安装目录的某个子文件夹。 请注意,上述步骤只是为了下载和安装oracle.manageddataaccess.client.dll,而不涉及其他可能的配置和设置。安装ODAC后,您可能需要在应用程序正确配置和引用oracle.manageddataaccess.client.dll,以确保Oracle数据库的正常连接和操作。如果您在下载、安装或配置过程遇到问题,建议参考Oracle的官方文档、论坛或与Oracle支持团队联系以获得进一步的帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值