2010-06-03 89 views
3
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. }时我没有任何智能感知,所以我显然做错了什么。Linq 2 SQL分组问题

任何想法?

回答

1

我不确定但是,下面的代码工作吗?

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, }); 
+0

这“作品”,但我希望能够做的是这样的:选择新{p.ID,GroupName = p.Group.Name,pm.Contribution,p.GameName,};不知道这是可能的。 – 2010-06-03 20:14:23

+0

pm.Contribution不会工作,因为您已按p分组 – alejandrobog 2010-06-03 20:24:20

1

我认为这是你在找什么

 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 }; 
1
var pools = 
    from p in dc.Pool 
    select new 
    { 
    p.ID, 
    GroupName = p.Group.Name, 
    Contribution = p.PoolMembers.Sum(pm => pm.Contribution), 
    p.GameName 
    };