与Oracle的EntityFramework 6:是否存在“独立”ODAC(即没有ODBC),并且每个客户端PC是否需要安装它?

时间:2015-01-13 07:17:55

标签: c# oracle entity-framework-6 odac

当我的VS 2013 Update 4安装正在运行时,我决​​定提出一些困扰我的问题以及可能很容易回答的问题,因为我还没有测试过自己(因为我的VS版本已经老了现在)。另外,我根本没有太多使用Oracle DB的经验,我只需要使用现有的一个,它到目前为止是有效的,因为其他人在几年前就完成了所有必要的工作。< / p>

我必须将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版本。 是否有必要从here安装包,其中包含完整的ODBC? PC上已有旧版本。是否有一个独立的&#34;可以安装ODAC,还是必须在我的开发PC上卸载/重新安装整个软件包?

我还不知道:以后使用该软件的每个客户是否都需要安装,或者是否可以发送DLL?就我而言知道,客户已经在他们的系统上都安装了ODBC,并且每个客户都分配了一个特定的DB用户,通过这些用户可以读取和操作数据库中的数据,如果知道这一点很重要的话。

提前致谢!

2 个答案:

答案 0 :(得分:3)

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

只需要分发一个DLL(Oracle.ManagedDataAccess.dll)。它适用于x86和x64。

答案 1 :(得分:2)

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

现在使用托管 ODP.NET可以轻松实现。我只想添加(对Wernfried的回答)如果您使用NuGet,您可以从here安装托管版本。但请记住,此程序包不支持分布式事务。