Entity Framework Update-Database с -ConnectionString

Наша веб-конфигурация использует одно и то же имя подключения для разработки и производства, с той лишь разницей, что сама строка подключения.

Я хочу создать команды Update-Database для разработки и производства, которые используют указанное соединение, указанное в команде.

Я запустил PM> get-help Update-Database -detailed, но не нашел подходящих примеров того, что я пытаюсь сделать.

Мой вопрос: какие параметры должны быть в ConnectionString? Очевидно, мне нужен исходный каталог, источник данных, идентификатор пользователя и пароль. Хотя насчет остальных не уверен. Мне вообще нужно имя соединения?

        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 

person Slinky    schedule 23.03.2015    source источник
comment
Не уверен, что вы имеете в виду. Имя соединения одинаково для обоих. Есть ли способ сделать это с помощью переменной среды?   -  person Slinky    schedule 23.03.2015


Ответы (2)


1) Минимум:

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

2) Для других неуказанных аргументов будут использоваться значения по умолчанию:

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

3) ConnectionStringName требуется только в том случае, если вы хотите, чтобы строка подключения была взята из строки подключения, определенной в вашем файле web.config или app.config.

person Kaspars Ozols    schedule 23.03.2015

Думали ли вы об использовании вместо этого преобразований 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.

person ste-fu    schedule 23.03.2015