Отношения между двумя Datacontext - PullRequest
3 голосов
/ 18 марта 2011

У меня есть две базы данных.MasterData и ProductData.Я храню пользователей и сотрудников в MasterData и сохраняю задачи в ProdcutData.Объект Task имеет свойство User.Он показывает, какой пользователь создал эту задачу.

Если бы я использовал только одну базу данных и один DataContext, я мог бы определить одно и более отношение между двумя объектами.Но я должен использовать две базы данных и точки данных.

Есть ли какое-либо решение, в котором я определяю отношения между двумя сущностями, находящимися в разных базах данных?

Ответы [ 3 ]

0 голосов
/ 21 марта 2011

Это не полный ответ, но он может заставить вас задуматься о другом решении.

В зависимости от используемой СУБД, вы можете создавать синонимы или обновляемые представления (или что-то подобное) из одной базы данных в другую.Что ваш DataContext может содержать синонимы / представления и таблицы.

В sql-сервере: http://msdn.microsoft.com/en-us/library/ms177544.aspx

0 голосов
/ 12 мая 2011

Синоним - хорошее решение, но EF пока его не поддерживает ....

http://data.uservoice.com/forums/72025-ado-net-entity-framework-ef-feature-suggestions/suggestions/1052345-support-for-multiple-databases?ref=title

Еще раз спасибо!

0 голосов
/ 18 марта 2011

Ну, если я не пропустил что-то, нет никакого способа объединить две сущности из разных контекстов / баз данных, независимо от того, является ли это L2S или EF. Альтернативой является объединение всех, возможно, релевантных данных из двух контекстов и выполнение linq в памяти для выполнения реляционных операций, но это, безусловно, создает проблемы производительности при загрузке слишком большого количества данных.
Вот «новая» идея, почему бы не использовать DataSet? Разные адаптеры таблиц могут использовать разные строки подключения. Он довольно архаичен рядом с L2S / EF, но он предложит вам больше всего наворотов.

У меня есть один вопрос: если вы храните пользователей и их задачи в отдельных БД, как вы справляетесь с целостностью ссылок?

...