2015-06-02 4 views
0

Я не в состоянии отобразить таблицу как этотобъединения присоединиться и группы в использовании LINQ

classId  class name frequency 
1   basic one  2 
2   basic two  1 

У меня есть модель, как это использовать для отображения частоты, classsId и имя класса. classsId является первичным ключом в таблице классов и внешнего ключа в studentDetails table.className в таблице классов

public int ClasssId { get; set; }  
public int ClassCount { get; set; } 

я создать метод действия для извлечения данных из базы данных и группы

public ActionResult ClasssStatistics() 
{ 
    IQueryable<ClassStatistics> data = from st in db.StudentDetailss 
    group st by st.ClasssId into classsGroup 
    select new ClassStatistics() 
    { 
     ClasssId = classsGroup.Key, 
     ClassCount = classsGroup.Count() 
    }; 
    return View(data.ToList()); 
} 

и это моя точка зрения, и результат я генерировать

<thead> 
    <tr> 
     <th>Class Id</th> 
       <th>Frequency</th> 
    </tr> 
</thead> 

<tbody> 
    @foreach (var item in Model) 
    { 
     <tr class="odd gradeX"> 
      <td>@Html.DisplayFor(modelitem => item.ClasssId)</td> 
      <td>@item.ClassCount</td> 
     </tr> 
    } 
</tbody> 

результат

classs Id  frequency 
1    2 
2    1 
+2

Пожалуйста, прекратите утверждать, что произвольные фрагменты текста являются фрагментами Javascript. Они не. (Вы можете процитировать код, не делая его фрагментом Javascript. Здесь нет ничего, что можно было бы рассматривать как исполняемый фрагмент.) –

+1

В чем тут вопрос? Почему бы просто не добавить имя класса с помощью соединения или что-то в этом роде? – fk2

ответ

0

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

public ActionResult ClasssStatistics() 
{ 
    IQueryable<ClassStatistics> data = from st in db.StudentDetailss 
             group st by st.ClasssId into classsGroup 
           select new ClassStatistics() 
           { 
            ClassId = classsGroup.Key, 
            ClassName = classsGroup.First().ClassName, 
            ClassCount = classsGroup.Count() 
           }; 
    return View(data.ToList()); 

} 
+0

thanks.based on your responce, я добавил className в модель. и я добавил эту строку в свой метод действий. «ClassName = classsGroup.First(). ClassName,« ClassName в правой руке подчеркивается как error.dont mind my naughty question.am a beginner –

+0

и, возможно, если вы хотите использовать заявку на соединение. Как я могу это сделать? –

+0

i изменил строку кода и больше не подчеркивал «ClassName = classsGroup.First(). Classs.ClasssName», но возвращает эту ошибку после ее запуска. «Метод« Первый »может использоваться только как конечная операция запроса. Вместо этого используйте метод« FirstOrDefault »в этом случае». –