如何将参数值传递给EFCore中的IDesignTimeDbContextFactory CreateDbContext



根据这篇博文,CreateDbContext(string[] args)方法可以接受dotnet ef命令行的参数。

这是我的代码;我想从cli传递连接字符串作为自定义参数。

public AppDbContext CreateDbContext(string[] args)
{
var optionsBuilder = new DbContextOptionsBuilder<AppDbContext>();
var connStr = args[0];
optionsBuilder.UseSqlServer(connStr);
return new AppDbContext(optionsBuilder.Options);
}

现在,当我用命令从cli传递这个参数时dotnet ef database update -- --constr Server=localhost;Database=DotNetSixPoc2;User Id=sa;Password=P@ssw0rd!;

我得到以下错误:

初始化字符串的格式不符合从索引0开始的规范。

请帮助。由于

好了,终于试错了。正确的语法是dotnet ef database update -- 'Server=localhost;Database=DotNetSixPoc2;User Id=sa;Password=P@ssw0rd!;'

简而言之,您不需要参数名称。官方文件误导人。