Entity Framework Update-Database с -ConnectionString

Нашата web,config използва едно и също име на връзка за dev и production, като единствената разлика е самият низ за връзка.

Искам да създам команди за актуализиране на база данни за разработка и производство, които използват указана връзка, предоставена в командата.

Изпълних 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