Я только начинаю с некоторого исследования структуры сущности, я подумал, что пришло время посмотреть, на что все жалуются. Я сталкиваюсь с проблемой, когда сущности, кажется, не возвращают какой-либо контекст объекта. Я сгенерировал модель из базы данных с тремя таблицами, которые связаны между собой.
Courses
Instructors
CanTeach
Отношения соответствуют ожидаемым: курс может относиться к нескольким объектам CanTeach, а преподаватель также может относиться к нескольким объектам CanTeach. Я также добавил в свой проект службу OData, которая также использует ту же модель. Так что я могу запускать такие запросы, как
from a in CanTeach
where a.Instructor.FirstName == "Barry"
select new { Name = a.Instructor.FirstName + " " + a.Instructor.LastName,
Course = a.Course.Name}
без проблем с конечной точкой OData с использованием LINQPad. Однако, когда я делаю простой запрос, как
public Instructor GetInstructorFromID(int ID)
{
return context.Instructors.Where(i => i.ID == ID).FirstOrDefault();
}
Список CanTeach пуст. Я знаю, что в EF все загружено лениво, и, возможно, мой контекст выходит за рамки, когда я смотрю на контекст объекта, однако даже пытаюсь получить контекст объекта, как только запрос запускается, и пустой контекст объекта ,
Что я делаю не так?
Edit:
В дополнение к ответу ниже я обнаружил, что
return context.Instructors.Include("CanTeach").Where(i => i.ID == ID).FirstOrDefault();
работал для тех, кто ищет более свободный API.