You need to enable JavaScript to run this app. 执行dotnet ef database update命令报MissingMethodException异常的问题
优惠活动
大模型
产品
解决方案
定价
更多

执行dotnet ef database update命令报MissingMethodException异常的问题

dotnet ef database update 抛出 MissingMethodException 处理方案

故障场景

执行 dotnet ef database update 迁移命令时,项目可正常完成编译构建,但执行流程中断,抛出如下堆栈异常:

Build started...
Build succeeded.
info: Microsoft.EntityFrameworkCore.Infrastructure[10403]

System.MissingMethodException: Method not found: 'Microsoft.EntityFrameworkCore.Storage.RelationalConnectionDependencies Microsoft.EntityFrameworkCore.Storage.RelationalConnectionDependencies.With(Microsoft.EntityFrameworkCore.Infrastructure.IDbContextOptions)'.
   at Microsoft.EntityFrameworkCore.Sqlite.Storage.Internal.SqliteRelationalConnection.CreateReadOnlyConnection()
   at Microsoft.EntityFrameworkCore.Sqlite.Storage.Internal.SqliteDatabaseCreator.Exists()
   at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.Exists()
   at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration)
   at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration, String connectionString, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabaseImpl(String targetMigration, String connectionString, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase.<>c__DisplayClass0_0.<.ctor>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)

异常原因

该报错属于典型的EF Core 程序集版本不兼容问题,和业务代码、迁移脚本的逻辑正确性无关,核心触发原因是不同EF Core组件跨大版本混搭,导致运行时加载程序集时找不到匹配的方法签名。

解决操作

  • 对齐项目内所有EF Core相关NuGet包的版本,确保Microsoft.EntityFrameworkCore、Microsoft.EntityFrameworkCore.Sqlite、Microsoft.EntityFrameworkCore.Design三个包的版本号完全一致,杜绝跨大版本混搭(例如主库为5.0、Sqlite提供程序为8.0这类错位组合)
  • 校验全局安装的dotnet-ef工具版本,卸载和项目EF Core版本不匹配的旧版工具,安装与项目版本完全一致的全局工具:
    • 移除旧工具命令:dotnet tool uninstall --global dotnet-ef
    • 安装匹配版本工具命令:dotnet tool install --global dotnet-ef --version 与项目EF Core相同的版本号
  • 手动删除项目目录下的bin、obj缓存文件夹,重新执行dotnet build完成全量编译后,再次运行迁移命令验证。

内容的提问来源于stack exchange,提问作者Bhanu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.02 02:36:01