dotnet ef不遵守配置

时间:2018-10-05 11:52:06

标签: c# asp.net-core entity-framework-core

我有两种配置: -发展 -生产

具有以下json设置文件: -appsettings.Production.json -appsettings.Development.json

在每个设置文件中,我都有以下部分:

(生产)

"Sql" : {
    "Name": "App_Prod",
    "Server": "127.0.0.1",
    "Port": 0,
    "Database": "db_prod",
    "Username": "user_prod",
    "Password": "secret"
   },

(开发中)

"Sql" : {
    "Name": "App_Dev",
    "Server": "127.0.0.1",
    "Port": 0,
    "Database": "db_dev",
    "Username": "user_dev",
    "Password": "secret"
   },

我将它们注入到我的DbContext构造函数中,并且可以正常工作。 我使用以下命令使用迁移系统更新了数据库:

  

dotnet ef数据库更新--context MyDbContext--配置开发

它有效,并且我的数据库方案已更新。

但是当我尝试使用以下命令更新生产数据库时:

  

dotnet ef数据库更新--context MyDbContext--配置生产

它为我提供了不需要进行任何迁移的信息。

我在MyDbContext中转储了连接字符串,即使我键入它应使用生产设置文件,我也可以看到DbContext仍使用开发配置。

为什么迁移机制不遵守我的配置? 如何使用appsettings.Production运行dotnet ef?

2 个答案:

答案 0 :(得分:0)

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = arrVideoCell[indexPath.row] return cell } 用于构建配置(例如--configurationRelease

v2.0之前的版本:

使用Debug-e

  

PM> dotnet ef数据库更新--context MyDbContext -e生产

v2.0 +:

在执行命令之前设置ASPNETCORE_ENVIRONMENT环境变量:

  

PM> $ env:ASPNETCORE_ENVIRONMENT ='生产'

答案 1 :(得分:0)

在我的情况下(Linux环境),使用:

  

export ASPNETCORE_ENVVIRONMENT =开发

更改数据库更新命令使用的环境