我第一次开始工作时,我的 add-migration 命令不起作用,之后我安装了最新版本的 entity-framewrok 并且它起作用了。当我关闭该项目并从明天开始新的一天时,它又对我不起作用了。
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 的第一条规则
- 关闭 IDE
- 删除 .vs 文件夹
- 编译你的项目
- 确保在包管理器控制台上正确设置了默认项目(具有您的数据库上下文的项目)
- 添加迁移
于 2021-09-16T22:18:22.303 回答
