2009-06-29 7 views
0

Je ne semblent être en mesure de trouver des preuves de plusieurs groupby étant supporté dans LinqToSql sur Internet (je devrais probablement acheter un livre :))groupes multiples dans LinqToSql

Je voudrais être en mesure de faire ceci:

 var qry = from s in DBContext.Styles 
       join artist in DBContext.Artists on s.ID equals artist.StyleID 
       join track in DBContext.Tracks on s.ID equals track.StyleID 
       group artist by new { s.ID, s.Name } into a 
       group track by new { s.ID, s.Name } into t 
       select new DTO.StyleSummary 
       { 
        ID = a.Key.ID, 
        Name = a.Key.Name, 
        NumberOfArtists = a.Count(), 
        NumberOfTracks = t.Count() 
       }; 

Cependant, la 2ème déclaration du groupe empêche la compilation .. Comme il est possible sql natif comment puis-je faire ??

Pensées? Est-ce seulement possible?

Répondre

1

C'est parce que vous n'avez pas vraiment besoin d'un groupby dans cette instruction LINQ. Vous pouvez juste faire

var qry = from s in DBContext.Styles 
      join artist in DBContext.Artists on s.ID equals artist.StyleID into a 
      join track in DBContext.Tracks on s.ID equals track.StyleID into t 
      select new DTO.StyleSummary 
      { 
       ID = s.ID, 
       Name = s.Name, 
       NumberOfArtists = a.Count(), 
       NumberOfTracks = t.Count() 
      }; 

Notez le into