【发布时间】:2016-04-21 08:53:35
【问题描述】:
我正在尝试根据int 分数构建排行榜。我正在提取记录并计算排名,如下所示:
//Base query
var query = UoW.Repository<UserProfile>().Get().OrderByDescending(u => u.Points);
//Fetch the data including a groupby count
var data = await query
.Skip(skip)
.Take(pageSize)
.Select(u => new UserListItem
{
Points = u.Points.ToString(),
Username = u.DisplayName,
Rank = query.Count(o => o.Points > u.Points) + 1 //Calculates the rank (index)
})
.GroupBy(u => new { Total = query.Count() })
.FirstOrDefaultAsync();
这很好用,除非当我有 2 个或更多具有相同点的值时,它会重复位置。无论关系如何,我都需要它不断增加。这是当前显示结果的方式:
排名 |用户 |积分
- 1 |用户 1 |第456章
- 2 |用户 2 | 420
- 3 |用户 3 | 402
- 4 |用户 4 | 380
- 4 |用户 5 | 380
知道如何让它正确地自动递增吗?
【问题讨论】:
标签: c# entity-framework linq-to-entities