Entity Framework 4 и несколько баз данных - PullRequest
8 голосов
/ 18 апреля 2010

Что-то меняется или все еще не поддерживает это? Например, присоединитесь к database1.dbo.Users и database2.dbo.Addresses

Ответы [ 3 ]

4 голосов
/ 25 мая 2011

Я действительно нашел способ сделать модель EF охватывающей несколько баз данных, если ваша база данных поддерживает синонимы. В основном вы устанавливаете Синонимы для Database2 на Database1, создаете отдельные модели edmx для каждой, а затем объединяете XML

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

3 голосов
/ 07 мая 2010

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

Если вы подумаете об этом, при создании модели EDM с помощью Visual Studio она попросит вас указать существующую базу данных, а по завершении создания модели она создаст строку соединения EF, которая внутренне обращается к данному базовому соединению базы данных. строка.

Например: metadata = res: ///EFTestModel.csdl | res: ///EFTestModel.ssdl | res: ///EFTestModel.msl; provider = System. Data.SqlClient; строка подключения провайдера = "Источник данных =. \; Исходный каталог = EFTest; Интегрированная безопасность = True; MultipleActiveResultSets = True " *

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

EF4 по-прежнему не поддерживает создание одной концептуальной модели, которая работает с N моделями хранения. По крайней мере, это не поддерживается ни одним встроенным провайдером. Возможно, в будущем это может быть сделано через нового провайдера, который объединяет поддержку множества хранилищ (от одного или разных провайдеров).

Я не провел достаточно исследований, но, возможно, Windows Server AppFabric (Codename Velocity) может быть мостом для преодоления этого пробела.

Примечание. Я попытался даже вручную отредактировать xml для EDM (edmx), чтобы вставить второй элемент в тег , но он не соответствует XML-схеме EDM, поэтому VS предупреждает об этом: Ошибка 10021: обнаружен дублированный элемент схемы.

Рафа Ортега MAP2010

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