实体框架不能很好地与Oracle配合使用
我已经实现了一个web服务,它使用连接到Oracle 11g数据库的实体框架,使用一些非常简单的linq查询。这在VisualStudio中本地运行效果很好。当我将此web服务部署到我们的开发箱时,它不起作用。首先,我得到一个错误: 在配置中找不到指定的存储提供程序,或者该提供程序无效 我做了一些研究并阅读了一些关于修改web.config(或machine.config)以获得以下条目的帖子:实体框架不能很好地与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>
<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="DATA SOURCE=EDMSPT01;PASSWORD=*redacted*;USER ID=*redacted*"" providerName="System.Data.EntityClient" />
这里很难办。给知道这里发生了什么的巫师的疯狂道具