Я работал над проектом, в котором я использовал LinqToSQL
, в котором было много таблиц. Все они отображаются в одном файле .dbml
(т.е. Только в одном DataContext
). Я сделал это на предлог, что (в настоящее время) вы не можете присоединиться к нескольким контекстам данных. Например...
DB1DataContext db1 = new DB1DataContext();
DB2DataContext db2 = new DB2DataContext();
var query =
from x in db1.SomeTable
join y in db2.AnotherTable on x.Id equals y.Id
select new
{
x.Column,
y.Column
};
Кто-то утверждал, что это не так, и я должен разорвать файл .dbml
на отдельные меньшие (более управляемые) контексты данных. Я только что установил пример, запустил аналогичный запрос в один выше и получил следующую ошибку...
base {System.SystemException} = { "запрос содержит ссылки на элементы определенных в другом контексте данных." }
Мне любопытно, я что-то упускаю? Каковы общие практики, когда существует множество таблиц, требующих сопоставления? Как вы можете разбить файл .dbml?
Это было задано несколько раз здесь, и нет определенного ответа. Проверьте следующие вопросы:
Некоторые ответы относятся к этому сообщению в блоге: Срок службы LINQ to SQL DataContext