У нас есть установка Entity Framework 4.1, автоматически сгенерированные POCO и классы DbContext для взаимодействия с БД.
Автоматически сгенерированный производный класс 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.
Итак, что же здесь делать?