2016-06-30 24 views
0

如何连接两个表格以在下面的图片中获得以下结果?我想获得项目名称的计数。如何分组和加入以获得计数?

我知道我可以按项目编号:

var TotalSupportsByProject = 
    from s in db.MySupportContext 
       .GroupBy(s => s.ProjectID) 
       .Select(g => new { ProjectId = g.Key, Total = g.Count() }) 
    select s; 

enter image description here

+3

任何努力从你身边? –

+0

我认为这是Group&Count?那个长长的内联代码有什么问题? – shole

回答

2

加入和组。看来你正试图获得每个项目的支持。

var query = 
    from s in db.Support 
    join p in db.Project on s.ProjectId equals p.ProjectId 
    group 1 by p.ProjectName into g 
    select new 
    { 
     ProjectName = g.Key, 
     TotalSupport = g.Count(), 
    }; 

如果您需要能够包括不支持项目的计数,则需要进行一些调整。假设Project表包含您需要的所有项目:

var query = 
    from p in db.Project 
    select new 
    { 
     p.ProjectName, 
     TotalSupport = db.Support.Count(s => s.ProjectId == p.ProjectId), 
    }; 
+0

感谢这就是我想要的。 –

+0

是否需要返回没有支持记录的项目? –

+0

@JeroenHeier:很好的电话,这可能是有用的,以防万一。 –