1

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

在此处输入图像描述

4

1 回答 1

0

如果您使用多个项目,请先编译,也可以删除多个项目运行设置。尝试选择一个项目(例如,您可以选择您的 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. 添加迁移
于 2021-09-16T22:18:22.303 回答