Entity Framework представляет несколько баз данных в целом - PullRequest
0 голосов
/ 29 апреля 2011

У меня есть три базы данных с одинаковой схемой (базы данных SAP Business One). В этих базах данных у меня есть таблица мастеров товаров, связанная с таблицей складских запасов через код товара. Могу ли я иметь только одну каркасную модель Entity, которая имеет только один главный объект изделия и один объект складских запасов, который извлекает данные из 3 баз данных? Товары одинаковы в трех базах данных, но имеют разные коды склада. Я не знаю, ясно ли я объяснил.

1 Ответ

1 голос
/ 29 апреля 2011

Если вам нужна единая модель EF, которая будет одновременно загружать данные из трех баз данных, тогда ответ будет отрицательным.Если вам нужна единая модель EF, которую можно использовать для всех трех баз данных, ответ «да», но все ваши базы данных должны использовать один и тот же поставщик баз данных (сервер) и должны иметь одинаковую схему сопоставленных таблиц.

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

Если вам нужен первый сценарий, вы можете попытаться скрыть объединения и перекрестные запросы базы данных в представлениях и отобразить эти представленияв твоей модели.Это имеет два недостатка:

  • Отношения между представлениями недопустимы в SQL Server, но вы можете создать отношение в модели EF
  • Представления доступны только для чтения в модели EF.Если вы хотите изменить данные, лучшим способом является отображение хранимых процедур, которые это сделают.
...