Как настроить соединение с БД во время выполнения с EF 4.1 Code First - PullRequest
3 голосов
/ 22 июля 2011

Я пытаюсь использовать EF 4.1 с объектами Code First POCO для устаревшей базы данных.У меня много похожих баз данных, все с одной и той же схемой, и мне нужно решить, к какой из них подключиться во время выполнения.

Все примеры, которые я видел, показывают, как поместить строку подключения в App.config или Web..config.Это не будет работать для меня, так как мне нужно динамическое поведение.

Какими объектами / свойствами я могу управлять, чтобы управлять настройками БД для моего DbContext?

1 Ответ

3 голосов
/ 22 июля 2011

DBContext имеет конструктор, который принимает экземпляр DbConnection, который вы можете раскрутить, используя соответствующий класс фабрики.

Я делаю такие вещи в одном из своих приложений:

_context = new MyDbContext(
    new SqlConnectionFactory(Properties.Settings.Default.MyConnectionString)
        .CreateConnection("DatabaseName"));

Таким образом, я могу прочитать строку соединения во время выполнения и передать ее в класс SqlConnectionFactory, который даст мне новое соединение, использующее это.

Я не уверен, что в этом случае используется параметр «DatabaseName», так как он все равно находится в строке подключения. Конечно, я убедился, что они одинаковы.

...