Entity Framework 4 и несколько баз данных

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

3 ответа

Решение

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

Если вы подумаете об этом, когда вы создаете модель 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: Дублированный элемент Schema встречается.

Рафа Ортега MAP2010

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

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

Другие вопросы по тегам