2011-12-28 128 views
1

我有SQL并试图将ti转换为Linq查询。我需要通过几个字段对记录进行分组,Linq中如何做到这一点?Linq to SQL GroupBy几个字段

var statistic = DataAccess.Instance.Statistics.Where(
p => 
    p.DateStamp >= minDate && 
    p.DateStamp <= DateTime.UtcNow && p.UserId == userId && 
    p.Url.Contains(url) 
    ). 
    GroupBy(p=>p.PageTitle //How to group by second(Url) field? 


SELECT PageTitle 
      , Url 
      , Count(*) As [Count] 
      FROM Statistic 
     WHERE URL like @url 
     AND DateSpan BETWEEN @dateRange1 AND @dateRange2 
     AND UserId = @UserId 
     GROUP BY PageTitle, Url 
     ORDER BY Count(*) DESC, Url; 
+0

可能重复(http://stackoverflow.com/questions/847066/group-by-多列-LINQ) – Pleun 2011-12-28 15:17:17

回答

1

您需要按一个匿名类型:

.GroupBy(p => new { p.PageTitle, p.Url }) 
[集团通过多列 - LINQ]的