#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:
При взгляде на первый пример кода кажется, что вы, возможно, извлекаете данные откуда-то, кроме контекста данных. Добавьте контекст данных в свой запрос, и тогда вы сможете получить доступ к записям, с которыми вы пытаетесь сравнить друг с другом.