实体框架更新 - 带-ConnectionString的数据库

时间:2015-03-23 15:20:17

标签: c# entity-framework ef-migrations

我们的web,config为开发和生产使用相同的连接名称,唯一的区别是连接字符串本身。

我想为使用命令中提供的指定连接的开发和生产创建Update-Database命令。

我跑了PM> get-help Update-Database -detailed,但没有看到任何有关我想要做的相关示例。

我的问题:ConnectionString中需要什么参数?显然我需要初始目录,数据源,用户ID和密码。但不确定其他人。我甚至需要连接名称吗?

        update-database 
    -ConnectionStringName MyConn 
    -ConnectionString data source=10.10.10.20;
                      initial catalog=MyDatabase; 
                      persist security info=False;
                      user id=my_db_user;
                      password=1234;
                      max pool size=200;
                      MultipleActiveResultSets=True" 
                      providerName="System.Data.SqlClient 

2 个答案:

答案 0 :(得分:1)

您是否考虑过使用web.config转换?

https://msdn.microsoft.com/en-us/library/dd465326%28v=vs.110%29.aspx

在您的Web.Release.config文件中,您将有一个类似的条目:

<connectionStrings>
    <add name="MyDbName" connectionString="Data Source=10.10.10.20; Initial Catalog=MyDatabase; User Id=my_db_user; Password=1234;"
         xdt:Locator="Match(name)" xdt:Transform="SetAttributes" />
</connectionStrings>

使用xdt:Transform="SetAttributes"表示您不需要再次指定提供程序,只有连接字符串会在您转换的web.config中更改

答案 1 :(得分:1)

1)最低限度是:

  • DataSource / Server / Address / Addr / Network Address
  • Initial Catalog / Database
  • User Id / UID + Password / PWDIntegrated Security = true

2)默认值将用于未指定的其他args:

https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring%28v=vs.110%29.aspx

3)仅当您希望从web.config或app.config中定义的连接字符串中获取连接字符串时才需要ConnectionStringName