Как я могу настроить платформу сущности для использования другой строки подключения в зависимости от ее среды?

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

У них сложилось впечатление, что его нужно будет изменить вручную для каждой среды, и поэтому на развертывание уйдет вечность.

Как настроить EF Database-First для использования другого соединения на серверах разработки, тестирования и производства?

Могу я установить какую-нибудь переменную? Есть вариант, который я пропустил?


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
Добро пожаловать в 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! Не знаю, кто голосовал против этого ранее, но ИМХО ответ заслуживает большего количества голосов! - person Matt; 04.12.2014

В зависимости от вашей версии .net вы можете использовать web.config.debug и web.config.release

Вот связанный вопрос SO с дополнительной информацией

person Smeegs    schedule 09.06.2014