You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用EF Core反转分页数据源,让新数据显示在首页?

实现EF Core 6分页数据反转显示(新数据优先)

EF Core无法将TakeLast转换为SQL语句(尤其是SQLite不支持相关语法),所以不能直接用这个方法实现需求。正确的做法是先对数据按ID降序排序,再用常规的Skip+Take做分页,这样最新的(ID递增的)数据会默认排在第一页。

修改后的代码如下:

using (var _sqliteContext = new SQLiteContext())
{
   AssociatedObject.LoadDynamicItems(e.StartIndex, await _sqliteContext.Equipments
                   .Include(x => x.CostCenter)
                   .Include(x => x.EqInfo)
                   .OrderByDescending(x => x.Id) // 按ID降序,新数据排在最前
                   .Skip(e.StartIndex)
                   .Take(e.PageSize)
                   .ToListAsync());
}

关键说明

  • OrderByDescending(x => x.Id)是核心:将数据按主键ID从大到小排序,确保最新创建的(ID最大的)数据排在结果集最前面。
  • 后续的Skip(e.StartIndex)和Take(e.PageSize)会基于排序后的结果集分页,第一页(e.StartIndex=0)自然就是最新的一批数据。
  • 如果你的设备表主键不是Id,替换为实际的主键字段名即可(比如EquipmentId)。

内容的提问来源于stack exchange,提问作者Alex Wright

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 16:18:34