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

时间:2015-03-23 16:25:17

标签: c# entity-framework-6 ef-migrations

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

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

Keyword not supported: 'ConnectionProviderName'

我无法传递参数" ConnectionProviderName"

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

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

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

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

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

如何在1个命令中执行此操作?

由于

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:4)

是的,它们是单独的论点。当您将这些文件放入配置文件(我建议)时,您可以使用

<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"进行调用以区分每个连接。

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