У меня есть настольное приложение WPF, в котором используется структура сущностей 4.2 (сначала база данных), DbContext, хранилище и шаблоны единиц работы. Мне нужно переключить подключение к основной базе данных во время выполнения без использования строк подключения в файле app.config. Схема базы данных остается постоянной, поэтому классы сущностей, типы репозиториев и конфигурация единиц работы будут оставаться постоянными. Операции с целевыми базами данных доступны только для чтения. Этот контекстный класс генерируется автоматически. Объявление класса и конструктор выглядят так:
public partial class DxStudioEntityContainer : DbContext {
public DxStudioEntityContainer () : base("name=DxStudioEntityContainer ") { }
...
Имя 'DxStudioEntityConnection' указывает на неиспользуемую строку подключения в конфигурации приложения. Моя проблема заключается в том, как вставить строку подключения в DbContext. Я пытался добавить конструктор, как это:
public DxStudioEntityContainer (string databaseConnection) : base(databaseConnection) { }
но класс никогда не распознает второго конструктора, и я не знаю почему. Класс репозитория выглядит так:
public class MAssembliesRepository : RepositoryBase<All_MAssemblies>, IEntityRepository<All_MAssemblies> {
private readonly DxStudioEntityConnection _context;
public MAssembliesRepository(DxStudioEntityConnection context) : base(context) { _context = context; }
}
Весь мой опыт работы с EF использует DbContext, репозитории и единицы работы. Если бы мне пришлось разорвать все, я бы не знал, с чего начать.
Есть идеи?