运行ef7迁移时指定HostingEnvironment

本文关键字:HostingEnvironment ef7 迁移 运行 | 更新日期: 2023-09-27 18:14:17

我已经根据我的应用程序环境为我的DbContexts设置了连接字符串。在startup。cs中有

public Startup(IHostingEnvironment env, IApplicationEnvironment app)
{
    Configuration = new ConfigurationBuilder(app.ApplicationBasePath)
        .AddJsonFile("config.json")
        .AddJsonFile($"config.{env.EnvironmentName}.json", false)
        .AddEnvironmentVariables()
        .Build();
}

这个配置被注入到我的DbContexts中,如下所示

public MyDbContext(IConfiguration configuration)
{
    Configuration = configuration;
}
protected override void OnConfiguring(DbContextOptionsBuilder builder)
{
    var connString = Configuration.Get("SqlDb:ConnectionString");
    builder.UseSqlServer(connString);
}

因此,我可以在各种环境中使用我的项目,因为我喜欢(通过设置ASPNET_ENV在应用程序或主机设置)

然而,当我运行迁移时(出于明显的原因),我根本不能指定HostingEnvironment,启动类查找一个名为"config.."的文件。Json",因为缺少环境名称。有什么办法或者变通的办法吗?现在,每当我运行迁移时,我都必须在运行migrations

时硬编码连接字符串。

出于兴趣,我使用dnx从powershell运行迁移。ef命令

所以总的来说,是否有可能通过命令指定我的主机环境,或者在运行这些命令时做任何其他类型的工作来指定我的环境?

运行ef7迁移时指定HostingEnvironment

迁移如何发现用于迁移的服务将在即将到来的EF版本中发生变化。

这是一个在制品。参见EF7的Wiki - Design Meeting Notes(2015年9月17日)和Issue 2294

--environment选项添加7f48d0c

相关文章:
  • 没有找到相关文章