C # Microsoft учебник EF Core с Razor Pages - параметр поиска - PullRequest
0 голосов
/ 25 июня 2018

Я занимаюсь разработкой проекта на основе Microsoft EF Core с помощью учебника Razor Pages Contoso University и пытаюсь добавить дополнительный параметр поиска - он будет похож на поиск на индексной странице студента и возможность поиска поCourse Title, чтобы найти всех студентов, проходящих этот курс.

В index.cshtml.cs, student IQ = studentIQ.Where(s => s.LastName.Contains(searchString)…. студента я не могу заставить (s.Course.Title.Contains(searchString) работать.

Какой класс я добавляю, чтобыпуть к Course.Title работает?

1 Ответ

0 голосов
/ 25 июня 2018

Я проверил учебник на веб-сайте 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 "Загрузка связанных данных" в тех же документах - это ответит на ваши вопросы! Хорошей новостью является то, что вы делаете крутые вещи перед тем, как закончить урок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...