运行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命令
所以总的来说,是否有可能通过命令指定我的主机环境,或者在运行这些命令时做任何其他类型的工作来指定我的环境?
迁移如何发现用于迁移的服务将在即将到来的EF版本中发生变化。
这是一个在制品。参见EF7的Wiki - Design Meeting Notes(2015年9月17日)和Issue 2294
--environment
选项添加7f48d0c