如何分组和加入获得计数?

时间:2016-06-30 03:56:51

标签: c# linq

如何在下面的图片中加入两个表格以获得以下结果?我想得到项目名称的数量。

我知道我可以通过项目ID进行分组:

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

1 个答案:

答案 0 :(得分: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),
    };