代码之家  ›  专栏  ›  技术社区  ›  Jack Marchetti

LINQ 2 SQL分组问题

  •  3
  • Jack Marchetti  · 技术社区  · 14 年前
    var groups = from p in dc.Pool
                 join pm in dc.PoolMembers on p.ID equals pm.PoolID
                 group p by p.Group into grp
                 select new { grp.ID };
    

    这不管用。基本上我想进行分组,然后选择某些列,但是当我这样做时 select new { grp. } 我没有理智,所以我明显做错了什么。

    有什么想法吗?

    3 回复  |  直到 14 年前
        1
  •  1
  •   Gregoire    14 年前

    我不确定,但是,下面的代码有效吗?

    var groups = from p in dc.Pool
                 join pm in dc.PoolMembers on p.ID equals pm.PoolID
                 group p by p.Group into grp
                 select grp.Select(g=> g.ID);
    

    编辑

    var groups = from p in dc.Pool
                 join pm in dc.PoolMembers on p.ID equals pm.PoolID
                 group p by p.Group into grp
                 select grp.Select(g=> new{ 
                      Id = g.Id, 
                      GroupName = grp.Key.Name,
                      Contribution = pm.Contribution,
                      GameName = p.GameName, });
    
        2
  •  1
  •   alejandrobog    14 年前

    我想这就是你要找的

          var groups = from p in dc.Pool
                   join pm in dc.PoolMembers on p.ID equals pm.PoolID
                   group p by p.Group into grp
                   select new { grp.Key.ID, GroupName = grp.Key.Group.Name, grp.Key.GameName }; 
    
        3
  •  1
  •   Amy B    14 年前
    var pools = 
      from p in dc.Pool
      select new
      {
        p.ID,
        GroupName = p.Group.Name,
        Contribution = p.PoolMembers.Sum(pm => pm.Contribution),
        p.GameName
      };