Как переключать соединения с базой данных без записи app.config - PullRequest
0 голосов
/ 15 марта 2012

У меня есть настольное приложение 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, репозитории и единицы работы. Если бы мне пришлось разорвать все, я бы не знал, с чего начать.

Есть идеи?

...