在我目前的项目中,我有两个DataContexts项目引用。一个用于访问Oracle Db并使用EF 4.2。另一种是访问SQL Server并使用EF 6.0。
我已经阅读了this解决方案,但我无法让它发挥作用。
这是我得到的:
在我的Appconfig中,我添加了这个:
<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.ObjectContext'是在未引用的程序集中定义的。您必须添加对程序集'System.Data.Entity,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'的引用。
任何提示?
答案 0 :(得分:0)
与引用的问题/答案的区别在于,在另一种情况下,有两个DLL使用不同版本的依赖项。在您的情况下,您尝试在同一项目中使用两个不同版本的依赖项。
您可以尝试将特定于版本的代码分解(包装)为两个DLL(例如OracleDataAccess和SqlDataAccess)。在每个项目中,您现在可以参考EF的特定版本。然后从您的主项目引用两个... DataAccess项目,如果一切顺利,dependentAssembly配置文件条目应解决运行时两个EF DLL的版本冲突。
注意:您可能还需要调整EF依赖关系如何复制到构建目录以匹配配置文件中的href。