2015-01-13 47 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。

相关问题