【发布时间】:2014-10-22 14:44:40
【问题描述】:
我正在尝试从我的数据库中获取前 3 个最受欢迎的产品。我有一个名为 clicks 的表,其中包含点击的产品,以及其他一些不重要的字段(如 IP、日期等)。
我想查询数据库统计产品名称相同的总行数,并返回总数以及产品名称。
我的 linq 查询没有达到我的预期。我的代码:
var results == (from r in this._dc.Clicks
group r by r
into g
orderby g.Count() descending
select new { Total = g.Count(), Productc= g.Key.Product }).Take(3).ToList();
问题是,这会返回诸如
之类的结果11, Shoes
5, Shirts
4, Shirts
我本来希望结果是
11, Shoes
9, Shirts
something else
为什么我的 Linq 不显示总数?
【问题讨论】:
-
不应该是
group r by r.Product吗? -
如果你想按引用类分组,它应该实现IEquatable
标签: linq