实体框架 - ConnectionProviderName的Update-database命令提示

Sli*_*nky 6 c# ef-migrations entity-framework-6

我正在尝试使用提供的连接字符串运行Update-Database.对于我的测试,我添加了-Script非破坏性的 标志

看起来连接字符串中需要参数ConnectionProviderName,但只是添加它会导致此错误:

Keyword not supported: 'ConnectionProviderName'
Run Code Online (Sandbox Code Playgroud)

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

我可以按照下面的步骤分两步运行命令,但我宁愿一步完成命令.

   PM> update-database -ConnectionString 'data source=10.10.10.20;initial  catalog=MyDatabase;user id=db_user;password=1234;'  -Script
Run Code Online (Sandbox Code Playgroud)

返回以下请求以获取更多信息,然后我需要提供:

cmdlet Update-Database at command pipeline position 1
Supply values for the following parameters:
ConnectionProviderName: System.Data.SqlClient
Run Code Online (Sandbox Code Playgroud)

在我提供ConnectionProviderName之后,命令运行正常.

我怎么能用1命令做到这一点?

谢谢

Sli*_*nky 8

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

update-database -ConnectionString 'data source=10.10.10.20;initial  catalog=MyDatabase;user id=db_user;password=1234;'  -ConnectionProviderName System.Data.SqlClient  -Script
Run Code Online (Sandbox Code Playgroud)


Jer*_*vel 4

是的,它们是不同的论点。当您将它们放入配置文件(我推荐)时,您可以使用

<add name="myConnection"
    connectionString="data source=10.10.10.20;initial  catalog=MyDatabase;user id=db_user;password=1234;"
    providerName="System.Data.SqlClient" />
Run Code Online (Sandbox Code Playgroud)

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

如果您确实想在每次调用中指定它,那么您只需指定两个参数即可。