Присоединяться к таблицам из разных DbContext - сначала

В приложении с EF6.0 у меня есть два DbContext, созданных с помощью модели сначала, Schema1.DbContext1 и Schema2.DbContext2.

Теперь мне нужно сделать соединение на двух объектах, EntityA от Schema1.DbContext1 и EntityB от Schema2.DbContext2.

Как я могу это сделать?

Ответ 1

Вы пробовали просто сделать это?

Что-то вроде:

var result = context1.EntityA.Join(context2.EntityB, a=>a.Key, b=>b.Key, (a,b)=>new {a,b});

Я не уверен, насколько хорош SQL, поскольку соединение выполняется в LINQ. Вы хотите протестировать и посмотреть, как это происходит на самом деле!

Ответ 2

Если вы можете использовать хранимые процедуры, это случай для него. Proc может присоединиться к двум объектам на уровне базы данных в базах данных. Какой бы db был уместным, вы можете затем сопоставить эту процедуру в своей модели сущностей и использовать ее. Я говорю "если сможешь", потому что я видел магазины, запрещающие все SP в пользу только EF.