温馨提示:本文翻译自stackoverflow.com,查看原文请点击:c# - ef core don´t use ASPNETCORE_ENVIRONMENT during update-database
.net-core c# entity-framework-core visual-studio-2017

c# - ef核心在更新数据库期间不使用ASPNETCORE_ENVIRONMENT

发布于 2020-03-27 10:23:14

我使用Visual Studio通过一定的迁移来更新所有环境。使用下面的命令,它工作正常。

update-database -Migration initMigrationProduct -c ProductContext -Environment Production

在ef core 2.0中,此命令已更改,参数-Environment已删除。在文档中说。

“在2.0中,您可以改用ASPNETCORE_ENVIRONMENT环境变量。”

https://docs.microsoft.com/zh-cn/ef/core/miscellaneous/cli/dotnet

我现在已经尝试了各种方法,但是当我在update-databaseef core 2.0中运行时,它不使用ASPNETCORE_ENVIRONMENT变量。我想在注册表中设置应用程序属性。

请让我知道我需要做些什么才能使它与更新不同的环境一起工作?

如果我使用不同的启动设置启动应用程序,则可以正常运行,但不能使用程序包管理器控制台。

查看更多

查看更多

提问者
joakimja
被浏览
203
2,927 2018-07-21 19:17

在Visual Studio中使用包管理器对我来说是死胡同。解决方案是:

  1. 在解决方案中的启动程序项目的.csproj中添加以下内容:

    <ItemGroup>
        <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
    </ItemGroup>
    
  2. 打开命令工具(cmd),然后找到与.csproj相同的文件夹,用于启动项目(默认项目)。

  3. 按照Anton Toshik的建议运行命令 set ASPNETCORE_ENVIRONMENT=Production

4.然后运行命令dotnet ef database update initMigrationProduct -c ProductContext,现在它可以工作了。

备注:在此命令中databaseupdate自较早版本以来已更改位置。而且没有用于迁移的参数/代码。在澄清之后,文档会进行更多说明:https :
//docs.microsoft.com/zh-cn/ef/core/miscellaneous/cli/dotnet