2015-07-13 80 views
0

你好,我有问题表里维斯和我试图检查哪些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; } 

正如你看到的我有里夫,我创建表的虚拟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); 
    } 

所以我不能ReeveId.The视图返回GROUPBY通过它们的ID问题4项(4个问题),但它们只属于2里夫斯所以它必须显示2项没有4项。我该怎么做 ?

回答

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 

     });