一些LINQ查询仍然困扰着我。
对于包含两列“页面”和“日期”的表“命中”,我想在定义的时间范围内找到行数最多的页面。
在SQL中,我将使用以下代码:
SELECT TOP 10 [Page] ,COUNT([Page]) as Number FROM dbo.[Hits] WHERE [Date] >= CONVERT(datetime,'14 Jan 2009') AND [Date] < CONVERT(datetime,'15 Jan 2009') Group BY [Page] Order by Number DESC
在LINQ中,我不知道该如何处理,有人可以在这里帮助我吗?我尝试使用linqer对其进行转换,但是它只显示该表达式错误。
这样的事情应该起作用:
(from p in DataContext.Hits where (p.Date >= minDate) && (p.Date < maxDate) group p by p.Page into g select new { Page = g.Key, Number = g.Count() }).OrderByDescending(x => x.Number).Take(10);