public async Task OnGetAsync(int?id, int?courseID) { Instructor = new InstructorIndexData(); Instructor.Instructors = await _context.Instructors .Include(i => i.OfficeAssignment) .Include(i => i.CourseAssignments) .ThenInclude(i => i.Course) .ThenInclude(i => i.Department) //.Include(i => i.CourseAssignments) // .ThenInclude(i => i.Course) // .ThenInclude(i => i.Enrollments) // .ThenInclude(i => i.Student) //.AsNoTracking() .OrderBy(i => i.LastName) .ToListAsync(); if (id != null) { InstructorID = id.Value; Instructor instructor = Instructor.Instructors.Where( i => i.ID == id.Value).Single(); Instructor.Courses = instructor.CourseAssignments.Select(s => s.Course); } if (courseID != null) { CourseID = courseID.Value; var selectedCourse = Instructor.Courses.Where(x => x.CourseID == courseID).Single(); await _context.Entry(selectedCourse).Collection(x => x.Enrollments).LoadAsync(); foreach (var enrollment in selectedCourse.Enrollments) { await _context.Entry(enrollment).Reference(x => x.Student).LoadAsync(); } Instructor.Enrollments = selectedCourse.Enrollments; } }