k1lex
@k1lex
Программист торг. сети. C# (WPF, WinForms), T-SQL

Как быть с внешними ключами из другой базы в Entity Framework?

Такая проблема.
В базе данных приходится хранить идентификаторы (uniqueidentifier) подразделений (да и не только их) из другой базы данных.
Пример: Таблица Заказы в базе данных Order имеет поле DivisionGUID (uniqueidentifier), при этом сами DivisionGUID-ы и собственно прочая доп. информация (имена, типы и прочее) находятся в базе данных MasterData .
Проблема в том что я не знаю как обыграть этот случай с Entity Framework.

Возможно ли как-то решить проблему через представления или процедуры в базе возвращающие часть мне нужных данных?
Используется: MS SQL 2008, VS 2013, Entity Framework 6

P.S. В одном из своих вопросов по базам данных я уже поднимал эту тему в комментариях, было предложено сделать отдельные ORM-маппинги и дальше вручную сопоставить. Но перспектива подключать в проект отдельно еще 5-6 баз не очень радует

Кстати, интересно услышать мнение адептов NHibernate по решению такой проблемы.
  • Вопрос задан
  • 151 просмотр
Решения вопроса 1
@dmitryKovalskiy
программист средней руки
Разумеется вы можете писать кросс-базные храники и привязывать их вызов к EF. Может быть даже получится прямой маппинг на сущность. Но я и мой руководитель придерживаемся мнения, что кросс-базные хранимки это ЗЛО и их надо искоренять всеми возможными способами. Если говорить о конкретной задаче, то на уровне контекста дописывать методы доступа, внутри которых запрашивать дополнительные данные из другой БД. Если они редко меняются - кешировать.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы