我正在尝试运行 Update-Database,并且想指定连接字符串,但 CLI 正在查看错误的字符串。我的 appsettings.json 文件中有两个连接字符串:
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
},
"ConnectionStrings": {
"LocalWindows": "data source=.\\SQLEXPRESS;initial catalog=Intranet;persist security info=True;integrated security=true;",
"AzureDevelopment": "Server=tcp:en..."
}
}
当我运行 Update-Database 时,AzureDevelopment 始终是它使用的密钥。因此,如果我将 LocalWindows 连接字符串复制到 AzureDevelopment 的值,它将更新正确的数据库。此外,如果我删除 AzureDevelopment 但保留 LocalWindows,如下所示:
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
},
"ConnectionStrings": {
"LocalWindows": "data source=.\\SQLEXPRESS;initial catalog=Intranet;persist security info=True;integrated security=true;"
}
}
I get:
Value cannot be null.
Parameter name: connectionString
因此,似乎在某个时刻,CLI 选择使用 AzureDevelopment 字符串,我无法再更改密钥或提供连接字符串作为参数。
我的问题是迁移 CLI 如何知道要使用什么连接字符串?它是通过启动设置上的一些反射魔法来检测字符串还是什么?我在网上看到的只是如何在运行Update-Database时指定项目。 CLI 曾经有 -ConnectionString 和 -ConnectionStringName 参数,但这些参数不再可用。