2010-04-17 3 views

ответ

3

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

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

например: метаданных = Рез: // /EFTestModel.csdl|res:// /EFTestModel.ssdl|res:// /EFTestModel.msl;provider=System.Data.SqlClient; соединение поставщик строка = "Источник данных = \;. Initial Catalog = EFTest; Integrated Security = True; MultipleActiveResultSets = True" *

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

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

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

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

Rafa Ortega MAP2010

4

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

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

+0

У вас не возникло проблем в долгосрочной перспективе? Это полностью совместимо? –

+0

Отличная ссылка. Очень изобретательно. –

+1

@ LuisFilipe Проект, который я сделал для этого, действительно отменен, поэтому у меня не было возможности полностью проверить все. Из того, что я получил возможность испытать, единственными реальными ограничениями были все ограничения для синонимов. Например, если ваш Синоним указывает на другой сервер, вы ограничены тем, какие правила SQL предназначены для доступа к связанным серверам. – Rachel

 Смежные вопросы

  • Нет связанных вопросов^_^