我有多个DBContexts和DesignTimeDbContextFactory实现,如下所示。
public class MasterDbContextFactory : IDesignTimeDbContextFactory<MasterDbContext>
{
public MasterDbContext CreateDbContext(string[] args)
{
StringBuilder sb = new StringBuilder();
foreach (var arg in args)
sb.AppendLine(arg);
System.IO.File.WriteAllText("D:\\debug.txt", sb.ToString());
string server = args[1];
string databaseName = args[2];
string connectionString = string.Format(Constant.Connection, server, databaseName);
var optionsBuilder = new DbContextOptionsBuilder<MasterDbContext>();
optionsBuilder.UseSqlServer("connection string");
return new MasterDbContext(optionsBuilder.Options);
}
}
如here所述,我这样申请。
Update-Database -Context MasterDbContext -AppArgs 'LAPTOP-E4UBP70J' 'MASTER_USER'
但是我看不到所有的args参数。
答案 0 :(得分:1)
该功能仅在最新版本的EF Core 5.0 Preview 6中可用
Flow arguments into IDesignTimeDbContextFactory
参数现在从命令行流入
CreateDbContext
的{{1}}方法中。例如,要表明这是IDesignTimeDbContextFactory
构建,可以在命令行上传递自定义参数(例如dev
)dev
答案 1 :(得分:0)
此版本在5.0.0-preview.7.20365.15版本下效果很好。
使用其他参数添加迁移:
Add-Migration InitialCreate -Context MasterDbContext -OutputDir Migrations\Master -Args 'P1 P2'
使用其他参数更新迁移:
Update-Database -Context MasterDbContext -Args 'P1 P2'
这里是source