Я получаю эту ошибку при использовании LINQ2SQL:
The query contains references to items defined on a different data context.
Вот код:
var instances = (from i in context.List
join j in context.CatsList on i.ListID equals j.ListID
join c in context.Cats on j.CatID equals c.CatID
where c.SID == Current.SID
orderby i.Title
select i).Distinct();
Проблема, насколько я могу убедиться, состоит в том, что объект Current
на самом деле является объектом LINQ2SQL, возвращаемым из свойства, выполняющего другой оператор LINQ.
Таким образом, LINQ2SQL не любит выполнять запрос к базе данных, где запрос должен быть построен из одного оператора LINQ, включая результат другого оператора.
Моя проблема в том, что (я постараюсь обобщить проблему здесь), объект Current
извлекается с использованием того же контекста, что и запрос выше, и в конечном итоге Current.SID
должен просто разрешиться в int
так в чем же проблема компилятора с его выполнением?
Короче говоря, почему невозможно выполнить запрос LINQ, используя возвращенный объект предыдущего запроса в качестве аргумента?