Вы показываете эту строку кода:
from student in this.Students where student.Teacher.Id = id select student
Во-первых, = должно быть ==
Это просто опечатка?
Во-вторых, вам не нужно включать для следующего исправленного запроса, если позже вы не разыграете Учителя:
var q = from student in SomeObjectContext.Students
where student.Teacher.Id == id
select student;
LINQ to Entities не требует Inlcude только для предложения where.
Вам будет необходимо включить, если вы позже итерировали результаты и разыменовали Учителя:
foreach (var student in q)
{
Console.WriteLn(student.Teacher.Id);
}
В-третьих, вы показываете эту ошибку:
System.NullReferenceException: ссылка на объект не установлена для экземпляра объекта.
Это не ошибка LINQ to Entities. Ошибка на самом деле в этой строке кода, или это где-то еще?
Кроме того, что такое this
? Если это не ObjectContext, то вы, скорее всего, LINQ to Objects, а не LINQ to Entities. В этом случае у вас не было бы «Включить». Если это так, то откуда взялся this.Sbudents
?