我在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
字符串
我已经尝试了其他类似线程中提供的解决方案,但似乎都不起作用。任何帮助都是感激的。- 谢谢-谢谢
3条答案
按热度按时间ma8fv8wu1#
答案很晚,但如果您将Visual Studio与Oracle连接,这仍然会出现很多问题。如果你反复安装和卸载ODT,仍然得到这个错误,这是我的工作:
1.在Visual Studio中,转到工具->选项
1.您应该找到Oracle开发人员工具,如果没有,则说明您没有正确安装ODT
1.打开Oracle Developer Tools,单击常规
1.这将“唤醒”ODT以完成其安装
运行Visual Studio 2019。
b4qexyjb2#
扩展Evan的答案,这里是屏幕截图,单击Oracle Developer Tools选项,弹出以下内容:
的数据
的
的
的
重新打开解决方案后,添加了2个新文件:
的
n8ghc7c13#
检查配置文件中是否有以下内容。如果没有,则相应添加。
1.具有托管数据访问
<configSection>
字符串
<entityFramework>
下的提供程序型
1.在
<system.data>
下提供工厂详细信息型