2015-01-13 82 views
0

在我當前的項目中,我有兩個DataContexts的項目引用。一個用於訪問Oracle Db並使用EF 4.2。另一個是訪問SQL Server並使用EF 6.0。在同一個項目中使用2個不同版本的英文

我已經讀過this的解決方案,但我不能讓它的工作。

這裏是我的了:

  • 我引用EF 6.0。

    <runtime> 
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
         <dependentAssembly> 
         <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" /> 
         <codeBase version="6.0.0.0" href="ef6.0\EntityFramework.dll" /> 
         <codeBase version="4.2.0.0" href="ef4.2\EntityFramework.dll" /> 
         </dependentAssembly> 
        </assemblyBinding> 
        </runtime> 
    

    我仍然得到:類型「System.Data.Objects

  • 在預生成命令我在單獨的文件夾

在我的AppConfig我加入這個xcopied兩個dll文件。 ObjectContext'在未引用的程序集中定義。您必須添加對程序集「System.Data.Entity,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089」的引用。

任何提示?

+0

基本上,你不是針對相同版本的運行時,即.Net。不知道這可以做一些重組已完成的組件。請參閱http://msdn.microsoft.com/en-us/magazine/jj618295.aspx – tschmit007

回答

1

所引用的提問/回答不同的是,在另一種情況下有使用不同版本的依賴的兩個DLL。就你而言,你正試圖在同一個項目中使用兩個不同版本的依賴項。

您可以嘗試分解出(套)您的特定版本的代碼轉換成兩個DLL(例如OracleDataAccess和SqlDataAccess)。在每個項目中,您現在都可以參考特定版本的EF。然後從主項目中引用兩個... DataAccess項目,如果一切順利,dependentAssembly配置文件條目應該在運行時解決兩個EF DLL的版本衝突。

注意:您可能還需要調整EF依賴關係是如何複製到生成目錄在配置文件中匹配的HREFs。

相關問題