我们正在尝试使用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的连接字符串
<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的文件夹。
发布于 2018-04-04 16:41:54
您遗漏了几个信息,例如配置文件machine.config中的内容。此外,您也没有向我们提供任何错误消息。像“上述方法不起作用”这样的说法并不是很有帮助。
无论如何,我会试着给你一些提示:
Oracle(数据访问组件)是各种提供程序(ODP.NET托管和非托管、
不再使用HKLM\SOFTWARE\Wow6432Node\Microsoft.NETFramework\v4.0.30319\AssemblyFoldersEx\odp.net.managed。通常安装脚本应该已经删除了它。您的注册表应该如下所示:
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"当然,您必须根据您的系统设置文件夹。
https://stackoverflow.com/questions/49643382
复制相似问题