Я проверил учебник на веб-сайте Microsoft , и у них есть следующий код:
IQueryable<Student> studentIQ = from s in _context.Students
select s;
if (!String.IsNullOrEmpty(searchString))
{
studentIQ = studentIQ.Where(s => s.LastName.Contains(searchString)
|| s.FirstMidName.Contains(searchString));
}
В этом случае код загружает только ученик, а не дочерние объекты. Вам необходимо явно включить объекты, которые вы хотите включить, и любые связанные объекты в этом объекте (в этом случае вы хотите student.enrollments.course).
IQueryable<Student> studentIQ = _context.Students.Include(st => st.Enrollments).ThenInclude(enr => enr.Course).ToList();
if (!String.IsNullOrEmpty(searchString))
{
studentIQ = studentIQ
.Where(
s => s.Enrollments
.Any(enr => enr.Course.Title.Equals(searchString)
)
}
Я бы предложил вам посетить страницу Entity Framework "Загрузка связанных данных" в тех же документах - это ответит на ваши вопросы! Хорошей новостью является то, что вы делаете крутые вещи перед тем, как закончить урок.