public async Task OnGetAsync(int?id, int?courseID) { InstructorVM = new InstructorIndexViewModel { Instructors = await _context.Instructor .Include(i => i.OfficeAssignment) .Include(i => i.CourseAssignments) .ThenInclude(ca => ca.Course) .ThenInclude(c => c.Department) //.Include(i => i.CourseAssignments) // .ThenInclude(c => c.Course) // .ThenInclude(i => i.Enrollments) // .ThenInclude(i => i.Student) //.AsNoTracking() .OrderBy(i => i.LastName) .ToListAsync() }; if (id != null) { InstructorID = id.Value; var instructor = InstructorVM.Instructors.Where( i => i.ID == id.Value).Single(); InstructorVM.Courses = instructor.CourseAssignments.Select( s => s.Course); } if (courseID != null) { CourseID = courseID.Value; InstructorVM.Enrollments = InstructorVM.Courses.Where( c => c.CourseID == courseID).Single().Enrollments; } }
// GET: Instructors public async Task <IActionResult> Index(int?id, int?courseID) { var instructorIndexVM = new InstructorIndexViewModel { Instructors = await _context.Instructors .Include(i => i.OfficeAssignment) .Include(i => i.CourseAssignments) .ThenInclude(i => i.Course) .ThenInclude(i => i.Enrollments) .ThenInclude(i => i.Student) .Include(i => i.CourseAssignments) .ThenInclude(i => i.Course) .ThenInclude(i => i.Department) .AsNoTracking() .OrderBy(i => i.LastName).ToListAsync() }; if (id != null) { ViewData["InstructorID"] = id.Value; Instructor instructor = instructorIndexVM.Instructors.Where( i => i.ID == id.Value).Single(); instructorIndexVM.Courses = instructor.CourseAssignments.Select(s => s.Course); } if (courseID != null) { ViewData["CourseID"] = courseID.Value; instructorIndexVM.Enrollments = instructorIndexVM.Courses.Where( c => c.CourseID == courseID).Single().Enrollments; } return(View(instructorIndexVM)); }