Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用appsettings.json中定义的不同连接字符串进行CodeFirst迁移_C#_Entity Framework_Asp.net Core - Fatal编程技术网

C# 使用appsettings.json中定义的不同连接字符串进行CodeFirst迁移

C# 使用appsettings.json中定义的不同连接字符串进行CodeFirst迁移,c#,entity-framework,asp.net-core,C#,Entity Framework,Asp.net Core,在我的asp.NETCore(2.2)项目中,我有 appsettings.production.json appsettings.staging.json appsettings.development.json 对于不同的服务器,每个服务器都有自己的连接字符串。我对模型进行更改,然后运行addmigration然后updatedatabase——但这只会更新开发服务器上的模式 如何使用environmentappsettings.json文件中定义的连接来定位/更新临时服务器和生产服务器 我

在我的asp.NETCore(2.2)项目中,我有

appsettings.production.json

appsettings.staging.json

appsettings.development.json

对于不同的服务器,每个服务器都有自己的连接字符串。我对模型进行更改,然后运行
addmigration
然后
updatedatabase
——但这只会更新开发服务器上的模式

如何使用environment
appsettings.json
文件中定义的连接来定位/更新临时服务器和生产服务器


我尝试过使用不同的环境构建它,当在不同的环境中运行时,我知道连接字符串被正确地使用了——但是我如何让EF指向特定的数据库呢

您可以像本博客一样使用此命令设置specfic环境

然后您只需要运行dotnet ef migration cli命令

更新确保您已经在startup.cs中这样设置了环境配置

builder
    .SetBasePath(hostingEnvironment.ContentRootPath)
    .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
    .AddJsonFile($"appsettings.{hostingEnvironment.EnvironmentName}.json", optional: true)
    .AddEnvironmentVariables();

您可以查看我的完整配置

您可以像此博客一样使用此命令设置specfic环境

然后您只需要运行dotnet ef migration cli命令

更新确保您已经在startup.cs中这样设置了环境配置

builder
    .SetBasePath(hostingEnvironment.ContentRootPath)
    .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
    .AddJsonFile($"appsettings.{hostingEnvironment.EnvironmentName}.json", optional: true)
    .AddEnvironmentVariables();

您可以查看我的完整配置

我一直在尝试,实际上我已经在查看该页面了-我正在尝试运行更新数据库等,但它似乎不起作用。我正在生成脚本并在服务器上运行它们,以便完整地获取所有以前的迁移历史。你是说它不能设置环境变量?环境变量设置很好,但是,当尝试运行其他命令时,它似乎仍在引用DEV连接设置:/尝试添加此设置,但仍然未应用迁移。数据库已经是最新的。-它始终以开发服务器为目标。我放弃了codefirst迁移,我没有很好的体验。我已经看到太多的基本数据库设计错误来自同事,也来自糟糕的模型设计。好吧,我很困惑,除了
迁移
表之外,它似乎已经放在了表中…我一直在尝试这个,我实际上已经在看那个页面了——我正在尝试运行更新数据库等,但它似乎不起作用。我正在生成脚本并在服务器上运行它们,以便完整地获取所有以前的迁移历史。你是说它不能设置环境变量?环境变量设置很好,但是,当尝试运行其他命令时,它似乎仍在引用DEV连接设置:/尝试添加此设置,但仍然未应用迁移。数据库已经是最新的。-它始终以开发服务器为目标。我放弃了codefirst迁移,我没有很好的体验。我已经看到太多的基本数据库设计错误来自同事,仅仅是因为糟糕的模型设计。好吧,我很困惑,除了
迁移
表之外,它似乎已经放在了表中。。。