Использование Entity Framework с зеркальной базой данных и минимизация дублирования работы - PullRequest
2 голосов
/ 23 июня 2011

Среда:
ASP.Net 4.0
MVC 4
SQL Server 2005
Visual Studio 2010

Проблема:
У нас есть база данных SQL 2005, которая транзакционно реплицируется на отдельный сервер, потому что ряд больших бизнес-запросов выполняется к данным и замедляет работу системы.Вторичный сервер используется для всех отчетов (только для чтения), в то время как основной сервер используется для повседневной работы.Наш старый код использует хранимые процедуры для доступа к базе данных, и было относительно легко поддерживать разные строки подключения, и все отчеты использовали строку подключения к серверу отчетов.Однако недавно мы начали писать весь наш новый код с использованием Entity Framework для доступа к данным, и я не знаю, как работать с двумя разными серверами.

Простым решением было бы, возможно, просто поддерживать два .edmx и указывать все отчеты на второй .edmx.Однако я сильно не люблю этот метод, так как он требует, чтобы разработчики поддерживали два разных файла.

Кто-нибудь еще сталкивался с этим сценарием и придумал более подходящее решение?Можно ли как-то использовать один и тот же .edmx для обоих серверов (поскольку они идентичны), но каким-то образом указать на уровне контроллера или действия, какую строку подключения использовать?

В идеале я ищу решение, которое делаетне требует ручной записи SSDL.Я хотел бы продолжить использовать конструктор и функции «Обновить модель из базы данных».

Спасибо за ваше время, Мирзеро

1 Ответ

2 голосов
/ 23 июня 2011

При создании объекта EntityContext вы можете указать строку подключения в конструкторе. Поэтому вам просто нужно передать требуемую строку методу, создающему экземпляр EntityContext.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...