首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle实体数据模型(ODP.NET)

Oracle实体数据模型(ODP.NET)
EN

Stack Overflow用户
提问于 2018-04-04 13:24:44
回答 1查看 303关注 0票数 1

我们正在尝试使用Database first approach for Oracle Db创建一个实体数据模型( edmx )文件。(我们已经有了一个用于SQL Server的edmx运行版本)。

安装了Visual studio 2017 for Framework4.5中包含Oracle.ManagedDataAccess.dll和Oracle.ManagedDataAccess.EntityFramework.dll的ODP.NET包,通过Nuget包手动修改了Oracle的连接字符串

代码语言:javascript
复制
  <connectionStrings>
    <add name="FacetsDataModel"
         connectionString="metadata=res://*/EntityDataModel.csdl|res://*/EntityDataModel.ssdl|res://*/EntityDataModel.msl;provider=System.Data.OracleClient;provider connection string=”Data Source=***;User Id=**;Password=***;”;" providerName="Oracle.ManagedDataAccess.Client" />
  </connectionStrings> 

上面的方法不起作用,因为我们发现系统中缺少ODP.Net托管提供程序。因此,我们尝试为Visual Studio 2013安装ODT工具(不起作用),卸载相同的ODT工具,然后安装2017(仍然是相同的问题)

我们发现我们错过了ODAC (Oracle数据访问组件),所以我们安装了相同的组件,但仍然没有获得ODP.Net托管数据提供程序。

我们从以下路径检查了machine.config文件: C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config

当我们尝试搜索解决方案时,我们得到了以下链接ODP.NET托管-无法找到requested.Net框架数据提供程序

第11点--他们提到通过在部分中包含ODP.NET和托管驱动程序来修改machine.config文件。修改machine.config文件后,我们的visual studio崩溃了。

正如链接中提到的,我们检查了注册表项文件,并检查RegKey是否存在。

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft.NETFramework\v4.0.30319\AssemblyFoldersEx\odp.net.managed

托管ODP.NET驱动程序未显示在数据源对话框中

但是在我们的系统中,在指定的路径中不存在名为AssemblyFoldersEx的文件夹。

EN

回答 1

Stack Overflow用户

发布于 2018-04-04 16:41:54

您遗漏了几个信息,例如配置文件machine.config中的内容。此外,您也没有向我们提供任何错误消息。像“上述方法不起作用”这样的说法并不是很有帮助。

无论如何,我会试着给你一些提示:

Oracle(数据访问组件)是各种提供程序(ODP.NET托管和非托管、

  • 、OLE DB)的集合。可能您在安装时选择了错误的组件。

不再使用HKLM\SOFTWARE\Wow6432Node\Microsoft.NETFramework\v4.0.30319\AssemblyFoldersEx\odp.net.managed。通常安装脚本应该已经删除了它。您的注册表应该如下所示:

代码语言:javascript
复制
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727\AssemblyFoldersEx\ODP.Net]
@="c:\\oracle\\product\\12.2\\odp.net\\bin\\2.x"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\ODP.Net]
@="c:\\oracle\\product\\12.2\\odp.net\\bin\\4"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\Oracle.ManagedDataAccess]
@="c:\\oracle\\product\\12.2\\odp.net\\managed\\common"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\Oracle.ManagedDataAccess.EntityFramework6]
@="c:\\oracle\\product\\12.2\\odp.net\\managed\\common\\EF6"

当然,您必须根据您的系统设置文件夹。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49643382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档