Получение количества строк, которые совпадают в mvc 3, используя EF

#asp.net-mvc #vb.net #asp.net-mvc-3 #entity-framework

#asp.net-mvc #vb.net #asp.net-mvc-3 #entity-framework

Вопрос:

У меня есть приложение mvc 3, которое использует EF. В одной функции мне нужно получить количество строк, которые соответствуют оператору. Я думал, что могу просто сделать это так:

    Dim _ClassCount As Integer = _CurrRegistrants.Where(Function(c) c.tues_class = _CurrCourse.course_ref).Count
  

Но это значение остается равным 0, даже если имеется 40 записей, соответствующих критериям.. Я думаю, что у меня есть правильная идея, мне просто нужно немного изменить синтаксис.. Кто-нибудь знает, где это сбой?

 Dim _CurrRegistrants As List(Of reg_classes) = db.reg_classes.ToList
For Each Course In _courses.Where(Function(a) a.course_day = "Tuesday")
            Dim _CurrCourse As cours = Course
               Dim _ClassCount As Integer = _CurrRegistrants.Where(Function(c) c.tues_class = _CurrCourse.course_ref).Count
  

Комментарии:

1. Вы хотели присвоить CurrCourse.course_ref c.tues_class или вы хотели сравнить их?

2. Я сравниваю два… Там, где он находит совпадения, мне нужно получить количество..

3. А _CurrRegistrants — это ваш DbContext?

4. Да, пожалуйста, посмотрите на мою правку… вы увидите, где определены оба…

5. Исправлено… Когда вы спросили об этом, я понял, что мне не нужно использовать для этого список (из xxxx)… Поэтому я вместо этого изменил его на…. Dim _ClassCount как целое число = db.reg_class. Где(функция (c) c.tues_class = _CurrCoutse.course_ref). Подсчет

Ответ №1:

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