我们有一个旧的asp.net MVC应用程序。其中包含EF 4X,MVC3等,并且它使用Oracle作为数据库引擎。
作为新任务的一部分,我们需要使用MVC 5.2X,EF 6.2X等重写此应用程序的页面。
首先,我尝试将MVC和EF升级到最新版本,并且需要进行很多更改才能将其升级到EF6X,因此我想为新更改创建新的解决方案(以后我们将所有页面更改为最新堆栈)。而且我已经将旧站点托管到IIS中,并在其中添加了一个应用程序,它将指向我们的新解决方案。
问题是旧的应用程序仍在使用EF 4X,而新的应用程序仍在使用6X,这会导致错误:定义了“重复实体框架”部分
实际上,我需要同时使用这两个EF版本,旧版本用于旧项目,新版本用于新项目。有什么办法可以做到吗?还是根本不可能呢?
答案 0 :(得分:1)
最后找到了一种方法。
我从子应用程序中删除了EF部分,并在运行时标签下的子应用程序web.config中添加了一个依赖程序集。
所以更改是..
在应用程序web.config中注释了以下行
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
然后在运行时标记下添加了以下部分
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" />
<bindingRedirect oldVersion="0.0.0.0-4.3.1.0" newVersion="6.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>