从 Ef 6.2 迁移到 6.4.4 时出现 MissingMethodException

MissingMethodException when migrating from Ef 6.2 to 6.4.4

对于 .net Framework 4.8 项目,当我将 EF 引用从 6.2 更新到 6.4.4 时,应用程序抛出错误

System.MissingMethodException: Unable find 'Void System.Data.Entity.Infrastructure.LocalDbConnectionFactory..ctor()'.

public class AppContext : DbContext
  {
    public AppContext() : base() <--- the debugger stop on this line

Web.config 有这些行

  <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>

.......

  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="mssqllocaldb"/>
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
    </providers>
  </entityFramework>

代码或配置文件中未进行任何更改,仅通过包管理器更新包。

那是什么?

在我的例子中,全局缓存在某种模式下被破坏了。

gacutil -u EntityFramework

解决了我的问题。