带有Oracle的EntityFramework 6:是否有“独立”ODAC(即没有ODBC),是否每个客户端PC都需要

本文关键字:是否 ODBC PC 客户端 EntityFramework Oracle 带有 ODAC 独立 | 更新日期: 2023-09-27 18:37:22

当我的VS 2013 Update 4安装正在运行时,我决定问一些困扰我的问题,这些问题可能很容易回答,因为我还无法测试自己(由于到目前为止已经有一个较旧的VS版本)。另外,我对 Oracle DB 根本没有太多经验,我只需要使用现有的数据库,到目前为止它之所以有效,是因为其他人在几年前为它运行做了所有必要的工作。

我必须将EntityFramework 6与现有的Oracle DB一起使用。我知道我需要一个 ODAC 才能工作,据说它必须是最新的 (12.x)。到目前为止,我做了什么来测试 EF 是否适用于我的 Oracle DB(11g):

  • 从 NuGet 安装 ODAC 11.2.0.3.20
  • 来自 NuGet 的 Intall EF 5

然后,在可更新视图的一些复杂情况之后,一切正常。

现在,要让 EF 6 与 Oracle 一起运行,我首先需要更新的 ODAC 版本。是否有必要从此处安装包含完整 ODBC 的软件包?PC上已经有一个旧版本。是否有可用的 ODAC 的"独立"安装,或者我是否必须在开发电脑上卸载/重新安装整个软件包?

我也不知道的是:以后使用该软件的每个客户端都需要此安装,还是可以只提供DLL?据我所知,每个客户端已经在其系统上安装了 ODBC,并且每个客户端都分配了一个特定的数据库用户,他们通过该用户读取和操作数据库中的数据,如果了解这一点很重要的话。

提前感谢!

带有Oracle的EntityFramework 6:是否有“独立”ODAC(即没有ODBC),是否每个客户端PC都需要

您可以使用托管驱动程序 ODP.NET(Oracle Data Provider for .NET),可以从此处下载:Oracle Data Access Components (ODAC) Downloads。

它只是一个你必须分发的DLL(Oracle.ManagedDataAccess.dll)。它适用于 x86 和 x64。

很长一段时间以来,我一直在使用非托管 ODP.NET,即便如此,也可以在完全独立的模式下使用它(尽管您必须在应用程序中拖动巨大的 DLL)。这里描述的这种方法,以防万一。

现在,使用托管 ODP.NET,事情要容易得多。我只会补充(Wernfried的答案),如果您使用NuGet,则可以从此处安装托管版本。但请记住,此包不支持分布式事务。