У нас есть настройка Entity framework 4.1, автоматически сгенерированные POCO и классы DbContext для взаимодействия с db.
Автоматически созданный производный класс DbContext выглядит следующим образом:
public MyEntities()
: base("name=MyEntities")
{
}
И автоматически сгенерированная строка подключения в app.config примерно такая:
<connectionStrings>
<add name="MyEntities" connectionString="blah blah blah" providerName="System.Data.EntityClient" />
</connectionStrings>
Это все прекрасно, и работает прямо из коробки.
У каждого из наших разработчиков установлена собственная версия SQL Developer для модульного тестирования и разработки, поэтому им необходимо изменить строку подключения, чтобы она указывала на их установку при модульном тестировании. Эти строки подключения находятся в файле App.config проекта модульного тестирования.
В настоящее время это шаг модификации вручную, и я думал каким-то образом автоматизировать его.
Теперь я могу пойти и обработать строку подключения в коде, но передать ее в конструктор инфраструктуры сущностей мешает автоматически сгенерированный по умолчанию конструктор "MyEntities" выше - у него нет параметра строки подключения ни в одном конструкторе. (Хотя DbContext делает). Кроме того, я не особенно хочу прокладывать строку подключения через код DAL и опускаться в код структуры сущностей - это не нужно в производстве, поэтому я модифицирую свой код только для целей модульного теста.
Я думал, что должен быть какой-то способ переопределить строку в App.config. Это похоже на то, как это можно сделать с локальным файлом Appsettings. (ie <appSettings file="Local.config"/>)
, но я не понимаю, как это сделать для записей ConfigurationManager.ConnectionStrings.
Итак, что здесь делать?