将join和group结合使用LINQ
本文关键字:LINQ 结合 group join | 更新日期: 2023-09-27 17:52:15
我不能像这样显示一个表
classId class name frequency
1 basic one 2
2 basic two 1
我有一个这样的模型来显示频率,classsId和类名。classsId是class表中的主键,是studentDetails表中的外键。className在类表
public int ClasssId { get; set; }
public int ClassCount { get; set; }
创建一个action方法从数据库和组
中获取数据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
这有点顽皮,但是如果你确信所有的类都是一样的,那么你可以从组中取第一个——总有一个,否则组就不存在了。
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());
}