【问题标题】:Paginate in server side WebApi Rest .NetCore服务器端Web Api Rest .Net Core中的分页
【发布时间】:2020-06-02 14:59:45
【问题描述】:

如何使用 EF Core 和 Angular 在服务器端 web api .net core 2.2+ 中进行分页?因为之前我在前端使用分页,但出于性能原因不推荐。

【问题讨论】:

  • 您好 Anderson,请先向我们展示您尝试过的内容,然后询问您是否遇到问题。到目前为止的问题并未表明您已经进行了任何尝试。
  • @Anderson 欢迎来到 SO!请采取tour - 恐怕你的问题太宽泛而无法回答。

标签: c# .net-core single-page-application ef-core-2.0 webapi


【解决方案1】:

如果您想使用 EF 在后端进行分页,您可以利用 Skip 和 Take 方法。这取决于几件事,但假设您可以“冻结”或在数据库中有一组稳定的有序记录,您可以执行以下操作:

int pageSize=20;
int pageNumber=3;
IQueryable<MyEntity> entities = context.MyEntity.AsNoTracking()
                                                .FromSql(query, parameters);
entities.OrderBy(e => e.Id);
entities = entities.Skip(pageSize*(pageNumber)).Take(pageSize);

请记住,这并不总是可行的,具体取决于新记录和删除记​​录或 order by 字段的更改。但好消息是它支持多数据库。

【讨论】:

    猜你喜欢
    • 2019-12-20
    • 2018-11-09
    • 1970-01-01
    • 2016-02-04
    • 2014-05-23
    • 1970-01-01
    • 2021-03-22
    • 1970-01-01
    • 2017-03-14
    相关资源
    最近更新 更多