【问题标题】:ASP.NET Add-Migration No DbContext was found in assemblyASP.NET Add-Migration 在程序集中找不到 DbContext
【发布时间】:2021-09-16 17:31:22
【问题描述】:

我第一次开始工作时我的 add-migration 命令不起作用,之后我安装了最新版本的 entity-framewrok 并且它起作用了。当我关闭项目并明天开始新的一天时,它又对我不起作用了。

【问题讨论】:

  • 请始终将错误粘贴为文本,而不是图像

标签: asp.net entity-framework asp.net-core entity-framework-migrations


【解决方案1】:

如果您使用多个项目,请先编译,也可以删除多个项目运行设置。尝试选择一个项目(例如,您可以选择您的 api 项目)。确保你的构造方法设置正确。

例如:

 public AppDbContext(DbContextOptions<AppDbContext> options) : base(options)
        {
            
        }

如果您使用不同的环境设置,例如开发、登台或生产,您可以将 AddDbContext 行为移出 if-else 语句。

例如:

else if(_env.IsStaging() || _env.IsProduction())
{
    services.AddMemoryCache();
    services.AddDbContext<AppDbContext>(options =>{
       options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"));
    });
}

在添加迁移之前,我将 AddDbContext 部分移出 if 块。您还可以在包管理器控制台上定义环境,例如:

$ASPNETCORE_ENVIRONMENT = "暂存"

如果你检查你的 Properties -> launchSettings.json 你可以看到:

 "WebAPI": {
      "commandName": "Project",
      "dotnetRunMessages": "true",
      "launchBrowser": false,
      //"launchBrowser": true,
      "launchUrl": "swagger",
      "applicationUrl": "https://localhost:5001;http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Staging" //here
      }
    }

如果一切都失败了,回到成为 IT 的第一条规则

  1. 关闭IDE
  2. 删除 .vs 文件夹
  3. 编译您的项目
  4. 确保在包管理器控制台(具有您的数据库上下文的项目)上正确设置了默认项目
  5. 添加迁移

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-27
    • 1970-01-01
    • 2019-03-25
    • 2017-08-20
    • 1970-01-01
    • 2016-11-04
    • 1970-01-01
    • 2017-04-09
    相关资源
    最近更新 更多