2014-06-17 3 views
0

У меня есть мнение, где я показываю модель, но в модели, которую я хочу также показать небольшую таблицу данных из другой модели, которая исходит из следующего LINQ в контроллереC# MVC Pass группы данных для просмотра

var StudentRatings = db.LearnerRatings 
       .Where(i => i.LessonId == id) 
       .GroupBy(i => i.Rating) 
       .Select(group => new { Rating = group.Key, TotalCount = group.Count() }); 

ViewBag.Ratings = StudentRatings; 

Я уже возвращаю другую модель с контроллера, поэтому добавил это в ViewBag. я думал, что я мог бы перебрать их с Еогеасп

foreach (var ratings in ViewBag.Ratings){ 
     @ratings.TotalCount 
} 

, но получаю сообщение об ошибке - Дополнительная информация: «объект» не содержит определения для «TotalCount»

Я принимаю это это имеет быть брошенным? Если да, то к чему его привлекают?

Это лучший подход для вышесказанного?

ответ

1

Анонимные типы не должны пересекать границы методов: т. Е. Ваш вид не знает, какой тип ratings есть.

Изменение анонимного типа с именем структуры или класса, то вы можете сделать это так:

class Rating { 
    public Int32 Rating { get; set; } 
    public Int32 TotalCount { get; set; } 
} 

... 
.Select(group => new Rating { Rating = group.Key, TotalCount = group.Count() }); 
... 

foreach(Rating rating in ViewBad.Ratings) { 
    @rating.TotalCount 
} 
+0

я уже пытался что-то подобное, но, по крайней мере, я знал, что я на правильном направлении. Я очень новичок в этом. Выполнение этих изменений дает мне ошибку «base = {» Объект или сложный тип «LearningAndTeaching.Models.LearnerRatingCount» не может быть сконструирован в запросе LINQ to Entities. »}« – user3749535

+0

@ user3749535 Где определяется «LearningRatingCount»? Вы получите это сообщение об ошибке, если попытаетесь повторно использовать класс Entity в проекции (вызов 'Select'). Используйте простой отдельный POCO, как я продемонстрировал. – Dai

+0

Спасибо, переместив его и удалив фрагмент кода, который связал его с моими моделями, обработал удовольствие. Очень признателен. – user3749535

Смежные вопросы