Я пытаюсь получить 3 самых популярных продуктов из моей базы данных. У меня есть таблица с кликами, в которой содержится продукт, на который есть клик, а также некоторые другие не важные поля (например, IP, дата и т. Д.).Почему linq не группирует/считает, как ожидалось
Я хочу запросить базу данных, чтобы подсчитать общее количество строк, где имя продукта совпадает, и вернуть общее число, а также имя продукта.
Мой запрос 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] (http://msdn.microsoft.com/en-us/library/ms131187 (v = vs.110) .aspx) – Grundy