Как мога да конфигурирам рамката на обекта да използва различен низ за свързване в зависимост от неговата среда?

Моята компания използва различни бази данни в зависимост от етапа на разработка на даден проект. В момента се опитвам да настоявам за приемане на Entity Framework + LINQ, но срещнах спънка, когато ме попитаха как това ще работи в нашите множество среди.

Те са с впечатлението, че ще трябва да се променя ръчно за всяка среда и следователно ще отнеме цяла вечност за внедряване.

Как да конфигурирам EF Database-First да използва различна връзка на dev, test и производствени сървъри?

Мога ли да задам някаква променлива? Има ли опция, която съм пропуснал?


person jonjw    schedule 09.06.2014    source източник
comment
They are under the impression it will have to be manually changed. Горе-долу вярно. Можете да имате множество конфигурации на компилация и да създадете файл app.config/web.config (с различни низове за връзка) за всяка (вижте трансформациите на конфигурацията) или да поставите низовете за връзка в различен файл.   -  person gunr2171    schedule 10.06.2014
comment
comment
Добре дошли в Stack Overflow! Моля, потърсете SO за дублирани въпроси, преди да зададете нов. Ако горният потребител може да намери 4 дубликата за седем минути, това показва липса на изследователски усилия.   -  person eddie_cat    schedule 10.06.2014


Отговори (2)


РЕДАКТИРАНЕ: Възможен дубликат на Управление на низ за връзка за отстраняване на грешки и освобождаване

Можете да посочите низа за свързване, който вашето приложение използва, като използвате файл app.config или web.config, в зависимост от вида на проекта, който използвате.

Прочетете тази страхотна документация: http://msdn.microsoft.com/en-us/data/jj592674

За първо приложение за база данни, използващо EF, ето примерен app.config:

<configuration>  
  <connectionStrings>  
    <add name="Northwind_Entities"  
         connectionString="metadata=res://*/Northwind.csdl|  
                                    res://*/Northwind.ssdl|  
                                    res://*/Northwind.msl;  
                           provider=System.Data.SqlClient;  
                           provider connection string=  
                               &quot;Data Source=.\sqlexpress;  
                                     Initial Catalog=Northwind;  
                                     Integrated Security=True;  
                                     MultipleActiveResultSets=True&quot;"  
         providerName="System.Data.EntityClient"/>  
  </connectionStrings>  
</configuration>

Можете да използвате различен app.config по време на отстраняване на грешки и освобождаване (ето инструкции http://mitasoft.wordpress.com/2011/09/28/multipleappconfig/), което прави наистина лесно за EF да избере различна конфигурация в различни среди.

person Ryan Erdmann    schedule 09.06.2014
comment
Наистина се надявам низовете за свързване да са във файла web.config/app.config като начало. - person gunr2171; 10.06.2014
comment
Благодаря за предоставените линкове, много са ми полезни! Получихте +1 от мен! Не знам кой е гласувал против това преди, но IMHO отговорът заслужава повече гласове за! - person Matt; 04.12.2014

В зависимост от вашата .net версия, можете да използвате web.config.debug и web.config.release

Ето свързан SO въпрос с повече информация

person Smeegs    schedule 09.06.2014