2013-07-31 2 views
0

У меня есть проект, где в пользовательском интерфейсе у меня есть список Radio Button, который состоит из двух элементов: Development and Production. В моем проекте я использую модель EF5 с SProcs для выполнения операций с базами данных. Я хочу создать способ использовать кнопки Радио для переключения между серверами базы данных разработки и производства во время выполнения, но я не могу найти хороший способ сделать это. Все, что мне нужно сделать, это заменить часть сервера базы данных в строке подключения, расположенной в app.config. Использование Transforms здесь не представляется возможным.Переключить соединения EF5 во время выполнения

Есть ли способ, которым я могу выполнить это без необходимости восстановления EF ConnectionString?

ответ

0

Вы можете использовать инъекцию зависимостей и иметь два класса DbContext. Затем, исходя из значения кнопки Radio, вы можете определить, какой DbContext использовать.

Или в конструкторе DbContext, вы могли бы пройти, в котором строка соединения использовать:

public class MyDbContext : DbContext 
{ 
    public MyDbContext(string connStringName) : base("name=" + connStringName) { } 
} 
+0

Я надеялся, чтобы избежать того, чтобы добавить еще один EF Модель только для производства. Но я не уверен, что следую вашему примеру, потому что этот код обычно является автогенером? Не уверен, что это хорошая идея изменить его? Вид нового для EF – Encryption

+0

Хорошо изменился конструктор для моего контекста. Я думаю, что я могу просто создать перегрузку, но ваш пример заставил меня двигаться в правильном направлении. – Encryption

+0

Ницца, рад, что это помогло. Это вариант, с которым я тоже поеду. Существует немало причин, чтобы изменить автоматически сгенерированный код. Я бы предложил взглянуть на [этот курс множественного числа] (http://pluralsight.com/training/Courses/TableOfContents/efarchitecture), который охватывает множество интересных сценариев с EF. –

Смежные вопросы