服务器端WebApi Rest .NetCore中的分页

问题描述 投票:0回答:1

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

c# .net-core single-page-application ef-core-2.0 webapi
1个回答
0
投票

如果您想使用EF在后端进行分页,则可以利用Skip and 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);

请记住,根据新记录和删除记​​录或字段顺序的更改,并非总是可能的。但这是一个好消息,它支持多数据库。

© www.soinside.com 2019 - 2024. All rights reserved.