我正在使用ASP.NET MVC,并且有一个多对多表,如下所示:
custID | objID
================
1 2
1 3
2 5
2 2
3 2
userID和objID都是Foreign Keys
链接到其他表。我想做的是根据objID
获得最高计数。上表将产生以下结果:
objID | objName | Price
=======================
2 | Chicken | 10
custID
在这种情况下并不重要,因为我只想获得最高计数的objID
。
我尝试过以下但是我被困在这里:
//retrieve many-to-many table
var retrieved = db.Customer.Include(c => c.Objects)
var topID = retrieved.GroupBy(q => q.objID)
.OrderByDescending(g => g.Count())
答案 0 :(得分:0)
List<int> lst = new List<int>() { 1, 3, 4, 5, 1, 2, 3, 4, 5, 2, 3, 2 };
var count = lst.GroupBy(q => q).OrderByDescending(s => s.Count())
.First().Key;
var lstKeyWithCount lst.GroupBy(i => i).Select(g => new { Key=g.Key,Count=g.Count() });
在lstKeyWithCount变量中,你得到count的键。 在计数变量中,你得到的重复值最多。
答案 1 :(得分:0)
应该做的伎俩。
var topID = retrieved.GroupBy(q => q.objID)
.Select(g => new { Id = g.Key, Total = g.Count() })
.OrderByDescending(g => g.Total).First().Id;