具有固定名称“Oracle.DataAccess.Client”的ADO.NET提供程序未注册

ui7jx7zq  于 2023-08-03  发布在  Oracle
关注(0)|答案(3)|浏览(284)

我在VS2015中开发了这个基于实体框架的Web服务代码,它一直工作得很好-直到我的系统被一个新的系统取代。在一个全新的系统上,我无法在同一版本的Visual Studio中编译代码,即使我安装了所有的依赖项-包括Oracle 11.2客户端运行时(它说,“安装用于开发应用程序,网络服务和基本客户端软件的工具”)。
当我在VS2015中构建解决方案时,抛出的错误是:第一个月
双击该错误将带我进入指向的EDMX文件和EDMX文件标记StorageModels > Schema:
<Schema Namespace="Model.Store" Alias="Self" Provider="Oracle.DataAccess.Client" ProviderManifestToken="11.2" xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" xmlns="http://schemas.microsoft.com/ado/2009/11/edm/ssdl">
有趣的是,DLL文件被创建(尽管有上述错误),但当我用这个新的DLL替换服务器上现有的DLL时,它似乎存在从数据库中提取数据的问题,如下所示:

System.ArgumentException: The specified store provider cannot be found in the configuration, or is not valid. ---> System.ArgumentException: Unable to find the requested .Net Framework Data Provider.  It may not be installed.
   at System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName)
   at System.Data.EntityClient.EntityConnection.GetFactory(String providerString)
   --- End of inner exception stack trace ---
   at System.Data.EntityClient.EntityConnection.GetFactory(String providerString)
   at System.Data.EntityClient.EntityConnection.ChangeConnectionString(String newConnectionString)
   at System.Data.EntityClient.EntityConnection..ctor(String connectionString)
   at System.Data.Entity.Internal.LazyInternalConnection.InitializeFromConnectionStringSetting(ConnectionStringSettings appConfigConnection)
   at System.Data.Entity.Internal.LazyInternalConnection.TryInitializeFromAppConfig(String name, AppConfig config)
   at System.Data.Entity.Internal.LazyInternalConnection.Initialize()
   at System.Data.Entity.Internal.LazyInternalConnection.CreateObjectContextFromConnectionModel()
   at System.Data.Entity.Internal.LazyInternalContext.InitializeContext()
   at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)
   at System.Data.Entity.Internal.Linq.InternalSet`1.Initialize()
   at System.Data.Entity.Internal.Linq.InternalSet`1.get_InternalContext()
   at System.Data.Entity.Infrastructure.DbQuery`1.System.Linq.IQueryable.get_Provider()
   at System.Linq.Queryable.Where[TSource](IQueryable`1 source, Expression`1 predicate)
   at MyCo.MyDept.MyIntegration.MyService.DataAccess.DAL.GetLocation() in C:\Users\xxxx\MyCo.MyDept.MyIntegration.MyService\DataAccess\DAL.cs:line 17
   at MyCo.MyDept.MyIntegration.MyService.Utility.Helpers.GetLocations() in C:\Users\xxxx\MyCo.MyDept.MyIntegration.MyService\Utility\Helpers.cs:line 303
   at MyCo.MyDept.MyIntegration.MyService.KService.GetLocations() in C:\Users\xxxx\MyCo.MyDept.MyIntegration.MyService\KService.svc.cs:line 71

字符串
我已经尝试了其他类似线程中提供的解决方案,但似乎都不起作用。任何帮助都是感激的。- 谢谢-谢谢

ma8fv8wu

ma8fv8wu1#

答案很晚,但如果您将Visual Studio与Oracle连接,这仍然会出现很多问题。如果你反复安装和卸载ODT,仍然得到这个错误,这是我的工作:
1.在Visual Studio中,转到工具->选项
1.您应该找到Oracle开发人员工具,如果没有,则说明您没有正确安装ODT
1.打开Oracle Developer Tools,单击常规
1.这将“唤醒”ODT以完成其安装
运行Visual Studio 2019。

b4qexyjb

b4qexyjb2#

扩展Evan的答案,这里是屏幕截图,单击Oracle Developer Tools选项,弹出以下内容:


的数据





重新打开解决方案后,添加了2个新文件:

n8ghc7c1

n8ghc7c13#

检查配置文件中是否有以下内容。如果没有,则相应添加。
1.具有托管数据访问<configSection>

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

字符串

  1. <entityFramework>下的提供程序
<entityFramework>
<providers>
  <provider invariantName="Oracle.ManagedDataAccess.Client" type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices, Oracle.ManagedDataAccess.EntityFramework, Version=6.122.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</providers></entityFramework>


1.在<system.data>下提供工厂详细信息

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

相关问题