entity-framework-core - 如何传递 CreateDbContext Args 参数?
问题描述
我有多个 DBContext 和 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);
}
}
如前所述,我是这样申请的。
Update-Database -Context MasterDbContext -AppArgs 'LAPTOP-E4UBP70J' 'MASTER_USER'
但我没有看到所有 args 参数。
解决方案
该功能仅在最新版本的 EF Core 5.0 Preview 6 中可用
将参数流入 IDesignTimeDbContextFactory
参数现在从命令行流入
CreateDbContext
.IDesignTimeDbContextFactory
例如,为了表明这是一个dev
构建,dev
可以在命令行上传递一个自定义参数(例如 ):dotnet ef migrations add two --verbose --dev
推荐阅读
- reactjs - 为什么 React 不重定向到路由?
- html - Bootstrap 网格列表视图等宽
- nestjs - Visual Studio Code:在非调试模式下开始在断点处停止并抱怨
- ruby - 查询返回不正确结果的 Mongoid ruby
- angular - 获取 Angular 中所有任务的列表
- java - 第三面板没有出现
- php - Symfony 5 不会加载 CSS 文件
- javascript - 引用类的方法和 `this` 的行为
- angular - 如何使用 *ngIf 隐藏所有 mat-checkboxes/mat-radio-buttons
- angular - 我在 Angular 变更检测中的断点未在 checkAndUpdateView() 上触发