您好我有问题表Reeves,我正在尝试检查哪个Reeve产生的问题最多。所以这是我的问题模型;
public int Id { get; set; }
public string Name { get; set; }
public string Text { get; set; }
public short Sira { get; set; }
public DateTime Created { get; set; }
public virtual Topic Topic { get; set; }
public virtual Member WhoIs { get; set; }
public virtual Province Province { get; set; }
public virtual Town Town { get; set; }
public virtual District District { get; set; }
public virtual Reeve Reeve { get; set; }
如你所见,我将Reeve作为虚拟桌子。当我创建表格时,我得到Reeve_Id
并尝试.GroupBy(m => m.Reeve.Id)
所以这是代码;
public ActionResult GroupByReeve()
{
var model = new ProblemModel
{
ProblemsList = Db.Problems.GroupBy(m => m.Reeve.Id)
.Select(s => new ProblemModel.ProblemForView
{
Id = s.FirstOrDefault().Id,
CountItem = s.Count(),
AllItem = Db.Problems.Count(),
ReeveName=s.FirstOrDefault().Reeve.Name
})
};
return View(model);
}
所以我可以通过他们的Id而不是ReeveId将问题分组。视图返回4项(4个问题)但它们只属于2个Reeves所以它必须显示2个项目而不是4个项目。我该怎么办?
答案 0 :(得分:0)
我不确定,为什么你的代码不起作用(看起来应该如此),但这里是你如何正确使用GroupBy:
ProblemsList = Db.Problems.GroupBy(m => m.Reeve.Id,
s => new ProblemModel.ProblemForView
{
Id = s.FirstOrDefault().Id,
CountItem = s.Count(),
AllItem = Db.Problems.Count(),
ReeveName=s.FirstOrDefault().Reeve.Name
});