Связывать таблицы из разных баз данных - Entity Framework - PullRequest
6 голосов
/ 16 февраля 2011

Я хотел бы знать, как (если возможно) связывать таблицы из разных баз данных, используя сущностную структуру У меня есть один edmx для моей базы данных "xyz" и другой для моей "abc", мне нужно связать их с помощью EF. Я знаю, как это исправить с помощью FK, но это не то, чего я хочу, я хотел бы иметь возможность делать это с помощью визуального редактора, не добавляя вручную FK в мою БД.

Вот практический пример того, чего я хотел бы достичь:

Таблица User - база данных: abc
Таблица сообщений - база данных: xyz

Я бы хотел связать пользователя с сообщением и наоборот.

Может ли кто-нибудь мне помочь?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 16 февраля 2011

Вы можете запрашивать их вместе с Linq-to-Objects, но не с L2S или L2E.

Контекст обернут вокруг 1 дБ-соединения, вы не можете отслеживать / обновлять объекты из нескольких дб.

Возможный обходной путь - «связать» один из БД с другого. MS-SQL может сделать это. Для EF это будет 1 база данных.

1 голос
/ 16 февраля 2011

Невозможно добиться этого с помощью области разработки edmx в EF.

Вы можете инкапсулировать эту связь в вашей доменной модели и обеспечить распределенную транзакцию по двум контекстам EF.Мы реализовали последний с помощью класса «контейнера» контекста EF, который, учитывая внутреннюю коллекцию контекстов, использует TransactionScope, когда он содержит более одного контекста (для эффективной работы он использует абстракцию IUnitOfWork).

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