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

时间:2018-04-04 05:24:44

标签: oracle entity-framework

我们正在尝试使用针对Oracle Db的数据库第一种方法创建实体数据模型(edmx)文件。(我们已经为SQL Server提供了edmx的运行版本)。

安装的ODP.NET软件包,包括Visual Studio 2017 for Framework 4.5中的Oracle.ManagedDataAccess.dll和Oracle.ManagedDataAccess.EntityFramework.dll,通过Nuget软件包 手动修改Oracle的连接字符串

leaveApprovedList.Where(l => l.leaveTypeId = "1" &&
                             l.requestUserId == "5dc64ba7-8cf8-45dd-80f2-a8700e7dad2e" &&
                             l.FromDate == "2018-04-30")
                  .Select(d => ("2018-04-31" - "2018-04-30").TotalDays)
                  .Sum();

上述方法无效,因为我们发现系统中缺少ODP.Net托管提供程序。所以我们尝试安装适用于Visual Studio 2013的ODT工具(没有工作)并安装相同并安装2017(仍然是同一个问题)

我们发现我们错过了ODAC(Oracle数据访问组件),因此我们安装了相同但仍然没有得到ODP.Net托管数据提供商。

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

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

第11点 - 他们提到通过包含ODP.NET,Managed Driver Under部分来修改machine.config文件。修改machine.config文件后,我们的visual studio崩溃了。

如链接中所述,我们使用Registry密钥文件进行检查,并检查RegKey是否存在。

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

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

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

1 个答案:

答案 0 :(得分:0)

您错过了一些信息,例如配置文件Object instance1 = Activator.CreateInstance<Object>(); Object instance2 = Activator.CreateInstance(typeof(object)); 中的信息。您也没有向我们提供任何错误消息。声明“上述方法不起作用”并不是很有帮助。

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

  • ODAC(Oracle数据访问组件)是各种提供程序的集合(ODP.NET托管和非托管,ODBC,OLE DB)。也许您在安装时选择了错误的组件。

machine.config不再使用了。通常安装脚本应该删除它。您的注册表应如下所示:

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

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