Представьте себе простую базу данных, где у студентов есть несколько курсов и несколько экзаменов, учитывая список студентов, уже загруженных из БД, я хочу заполнить списки курсов и экзаменов одним вызовом базы данных для каждого.
Я знаю, что могу использовать функцию «Включить заранее», что приводит к одному вызову, чтобы получить все:
var students = context.Students.Include("Courses").Include("Exams").ToList();
но мне также нужно иметь возможность загружать курсы и экзамены позднее.
Я пытался:
var courses = students.SelectMany(x => x.Courses).ToList();
var exams = students.SelectMany(x => x.Exams).ToList();
но это привело к двум вызовам в дБ для каждого студента. Как я могу добиться этого более эффективно?