Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
实体框架不能很好地与Oracle配合使用_Oracle_C# 4.0_Entity Framework 4 - Fatal编程技术网

实体框架不能很好地与Oracle配合使用

实体框架不能很好地与Oracle配合使用,oracle,c#-4.0,entity-framework-4,Oracle,C# 4.0,Entity Framework 4,我已经实现了一个web服务,它使用连接到Oracle 11g数据库的实体框架,使用一些非常简单的linq查询。这在VisualStudio中本地运行效果很好。当我将此web服务部署到我们的开发箱时,它不起作用。首先,我得到一个错误: 在配置中找不到指定的存储提供程序,或者该提供程序无效 我做了一些研究并阅读了一些关于修改web.config(或machine.config)以获得以下条目的帖子: <system.data> <DbProviderFactories>

我已经实现了一个web服务,它使用连接到Oracle 11g数据库的实体框架,使用一些非常简单的linq查询。这在VisualStudio中本地运行效果很好。当我将此web服务部署到我们的开发箱时,它不起作用。首先,我得到一个错误:

在配置中找不到指定的存储提供程序,或者该提供程序无效

我做了一些研究并阅读了一些关于修改web.config(或machine.config)以获得以下条目的帖子:

  <system.data>
<DbProviderFactories>
  <add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client" description="Oracle Data Provider for .NET" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</DbProviderFactories>

我选择将其放在web.config中。在我这样做之后,我开始出现错误:

无法加载文件或程序集“Oracle.DataAccess,Version=2.0.50727,Culture=neutral,PublicKeyToken=89b483f429c47342”或其依赖项之一。定位的程序集清单定义与程序集引用不匹配。(来自HRESULT的异常:0x8013100)

然后我决定在服务器上安装odp.net。之后,我开始出现错误:

为system.data创建配置节处理程序时出错:“InvariantName”列被约束为唯一。值“Oracle.DataAccess.Client”已存在。(D:\Duke\SmartGridWS\web.config第107行)

当然,这让我检查了machine.config,果然,odp.net安装在machine.config中放了相同的条目,因此,现在我删除了重复的web.config条目,只是得到了以下错误:

基础提供程序在打开时失败

以下是我的web.config中的连接字符串条目:

<add name="Entities" connectionString="metadata=res://*/EDMS.csdl|res://*/EDMS.ssdl|res://*/EDMS.msl;provider=Oracle.DataAccess.Client;provider connection string=&quot;DATA SOURCE=EDMSPT01;PASSWORD=*redacted*;USER ID=*redacted*&quot;" providerName="System.Data.EntityClient" />

这里很难办。给知道这里发生了什么的巫师的疯狂道具