你好,我有里夫斯的问题表,我正在尝试检查哪个里夫产生了最多的问题。这就是我的问题模型;
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作为一个虚拟的table.When,我创建了一个表,我得到了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.The,视图返回4个项目(4个问题),但它们只属于2个Reeve,所以它必须显示2个项目,而不是4个项目。我该怎么做呢?
发布于 2015-07-13 19:38:25
我不确定,为什么你的代码不能工作(看起来应该能工作),但下面是你如何正确使用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
});
https://stackoverflow.com/questions/31381986
复制相似问题