You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行Add-Migration时抛出指定调用目标异常错误求助

解决Entity Framework add-migration抛出“Exception has been thrown by the target of an invocation”的方案

以下是几种实用的排查和解决方法:

  • 检查DbContext配置
    确认DbContext类的OnConfiguring方法或配置文件(如appsettings.json)中的数据库连接字符串无误,没有拼写错误、缺失服务器地址/数据库名/认证信息等必要参数。同时确保DbContext构造函数能正确加载配置。

  • 清理并重建项目
    按顺序执行:

    1. 在Visual Studio中点击「生成」→「清理解决方案」
    2. 删除项目根目录下的bin和obj文件夹
    3. 点击「生成」→「重新生成解决方案」
      完成后再尝试运行add-migration MgName命令。
  • 统一EF相关包版本
    确保项目中所有Entity Framework相关包(如Microsoft.EntityFrameworkCore、Microsoft.EntityFrameworkCore.Tools、Microsoft.EntityFrameworkCore.SqlServer等)的版本完全一致,版本不匹配是引发这类反射异常的常见原因。

  • 获取详细错误日志
    在Package Manager Console中执行带详细日志的命令,定位具体问题:

    add-migration MgName -Verbose
    

    详细日志会展示异常的内部堆栈信息,帮你找到触发问题的具体代码或配置。

  • 检查实体类配置
    排查所有实体类的配置是否存在错误:

    • 是否有未处理的循环引用
    • .NET数据类型与对应数据库类型是否兼容
    • 主键、外键的定义是否合理,有没有缺失必要的键配置
  • 重置迁移历史
    如果之前的迁移文件损坏,可尝试重置:

    1. 删除项目中Migrations文件夹下的所有文件(若有DesignTimeDbContextFactory则保留)
    2. 在数据库中删除__EFMigrationsHistory表
    3. 重新执行add-migration InitialCreate(或自定义迁移名)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 10:17:03