2015-01-13 16 views
2

當我的VS 2013 Update 4安裝正在運行時,我決​​定提出一些困擾我的問題,這些問題可能很容易回答,因爲我現在還無法測試自己(由於到目前爲止有一個較舊的VS版本)。同樣,我對Oracle DB的經驗也不多,我只能使用現有的數據庫,而且它的工作至今還沒有完成,因爲其他人在幾年前完成了所有必要的工作。EntityFramework 6與Oracle:是否有「獨立」的ODAC(即沒有ODBC),並且每臺客戶端PC都需要安裝它?

我必須將EntityFramework 6與這個現有的Oracle DB一起使用。我知道我需要一個ODAC來工作,而且應該是最新的(12.x)。我所做的,到目前爲止,測試是否EF在所有工作與我的Oracle數據庫(11克):

  • 從的NuGet
  • Intall EF 5從的NuGet
  • 安裝ODAC 11.2.0.3.20

然後在可更新視圖出現一些問題後,一切正常。

現在爲了讓EF 6與Oracle一起運行,我首先需要擁有較新的ODAC版本。 是否有必要安裝來自here的包,其中包含一個完整的ODBC?在PC上已經有一箇舊版本。是否有可用的「獨立」安裝ODAC,還是必須在我的開發PC上卸載/重新安裝整個軟件包?

我也不知道的是:以後每個使用該軟件的客戶都需要這個安裝,還是可以直接發送這個DLL?據我所知,客戶端已經在其系統上安裝了ODBC,並且每個客戶端都有一個特定的數據庫用戶,通過它們可以讀取和操作數據庫中的數據,如果這很重要的話。

在此先感謝!

回答

3

您可以使用託管驅動程序ODP.NET(適用於.NET的Oracle數據提供程序),您可以從這裏下載:Oracle Data Access Components (ODAC) Downloads

它只是一個你必須發佈的DLL(Oracle.ManagedDataAccess.dll)。它適用於x86和x64。

+0

這是否意味着我應該下載鏈接的小XCopy版本?這個頁面說我需要32位ODT來正確使用EF設備;所以我可以在我的開發機器上使用完整的ODTwithODAC軟件包,並且仍然在部署中運行該單個DLL文件?謝謝! – InvisiblePanda

+0

下載磁貼[ODP.NET_Managed121020.zip](http://download.oracle.com/otn/other/ole-oo4o/ODP.NET_Managed121020.zip)。正如我寫的,不管你使用32位還是64位,它都沒有區別。該zip還包含一個用於EF的DLL(EF6/Oracle.ManagedDataAccess.EntityFramework.dll) –

+0

我下載了完整的包(ODTwithODAC),因爲我們現在也需要其他的東西。現在我可以成功引用您提到的DLL,甚至可以使用EF設計器。那很棒!我只是想知道:當我們發佈應用程序時,我們可以包含dll;但他的客戶端PC上的用戶是否需要其他東西?比如,用戶是否需要更新他的ODBC安裝,或者當我運送dll時,一切都會「正常工作」?不幸的是我還不能真正測試它。 – InvisiblePanda

2

很長一段時間以來,我一直在使用非託管 ODP.NET,甚至可以在完全獨立的模式下使用它(儘管你必須拖動大量的DLL與你的應用程序)。以防萬一,這種方法描述了here

現在事情變得更容易與託管 ODP.NET。我只會補充(對Wernfried的回答),如果你使用NuGet,你可以從here安裝受管版本。但請記住,此包中不支持分佈式事務。

+0

這是我需要添加到項目中的唯一東西嗎?當我搜索「ODP」時,我對NuGet顯示的內容有點不知所措。我假設我也可以使用ODP.EntityFramework的東西。我還需要在本地安裝32位ODAC來使用設計器,正如oracle主頁指出的那樣?謝謝! – InvisiblePanda

+0

是的,我相信你唯一需要做的就是從NuGet加載這個依賴。嘗試搜索「odp.net.managed」來代替。您需要名爲「Oracle Data Provider for .NET(ODP.NET)託管驅動程序」的軟件包。至於EntityFramework,我認爲你也需要從Nuget安裝「odp.net.entityframework」依賴項。但是,說實話,我從來沒有使用過EntityFramework + Oracle組合。但是如果我需要使用它,我會朝這個方向前進:從NuGet加載所有需要的依賴關係。它極大地簡化了依賴關係的部署和管理。希望它能爲你解決! – ialekseev

相關問題