Entity Framework - ConnectionProviderName 的更新数据库命令提示

Entity Framework - Update-database Command Prompting for ConnectionProviderName

我正在尝试 运行 使用提供的连接字符串更新数据库。对于我的测试,我添加了 -Script 标志,这样是非破坏性的

连接字符串中似乎需要参数 ConnectionProviderName,但简单地添加它会导致此错误:

Keyword not supported: 'ConnectionProviderName'

我在传递参数时遇到问题 "ConnectionProviderName"

我可以 运行 分两步执行命令,如下所示,但我宁愿分 1 步执行命令。

   PM> update-database -ConnectionString 'data source=10.10.10.20;initial  catalog=MyDatabase;user id=db_user;password=1234;'  -Script

Returns 以下请求获取更多信息,然后我需要提供这些信息:

cmdlet Update-Database at command pipeline position 1
Supply values for the following parameters:
ConnectionProviderName: System.Data.SqlClient

在我提供 ConnectionProviderName 后,命令 运行 没问题。

如何在 1 个命令中完成此操作?

谢谢

无法在连接字符串中指定参数ConnectionProviderName;显然,它必须是它自己的参数,因为以下工作

update-database -ConnectionString 'data source=10.10.10.20;initial  catalog=MyDatabase;user id=db_user;password=1234;'  -ConnectionProviderName System.Data.SqlClient  -Script

是的,它们是不同的参数。当你把它们放在一个配置文件中时(我会推荐),你使用

<add name="myConnection"
    connectionString="data source=10.10.10.20;initial  catalog=MyDatabase;user id=db_user;password=1234;"
    providerName="System.Data.SqlClient" />

如果您的配置文件中只有一个连接字符串,那么您只需调用 update-database。但是,如果您有多个连接,则必须使用 update-database -ConnectionStringName "myConnection" 来调用它以区分每个连接。

如果你真的想在每次调用中指定它,那么你只需指定两个参数。