2010-06-03 95 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 
    };