Я работал над проектом, в котором я использовал 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} = {"The
запрос содержит ссылки на элементы
определено в другом контексте данных. "}
Мне любопытно, я что-то упустил? Каковы общие практики, когда существует много таблиц, которые требуют отображения? Как вы можете сломать файл .dbml?