如何使用 Entity Framework 获取每个 API 请求的下 10 或 20 行?
How can I get next 10 or 20 row each API request with Entity Framework?
我有数千行,但我不想只使用 Users.ToList()
可能效率不高。我只想向 API 每个请求发送 20 或 30 行。接下来的 20 行和接下来的 20 行我想这样做,可以吗?
喜欢 Twitter 或 Instagram
这里有什么更好的解决方案?
任何视频或文章。我需要一些建议,
谢谢大家
注意:目前,我正在使用ASP.NET Core 5.0,我正在使用React Native作为移动开发
让您的 API 端点接受页面偏移量和页面大小参数(如何取决于您 - 查询字符串、请求正文的一部分等)。然后,您可以使用 IQueryable<T>
.Skip
和 .Take
扩展方法 return 请求的行集:
var results = _dbContext.YourDbSet
.Skip( pageOffset * pageSize )
.Take( pageSize );
Entity Framework built-in 支持分页。你可以像这样很容易地实现它:
private IQueryable<Users> GetPageOfUsers(this IQueryable<Users> query, int pageNumber, int pageSize = 20)
{
// skip pages to get to the required page number
query = query.Skip(pageSize * pageNumber);
// take the number of entities to fill this page
query = query.Take(pageSize);
return query;
}
然后,您可以像这样调用此扩展方法:
Users.GetPageOfUsers(0, 20).ToList();
值得注意的是,此方法不考虑在页面请求之间可能插入页面中间的行;但是,对于按 database-generated 和 auto-incrementing 主键排序的传统 table,这可能不是 material 问题。
我有数千行,但我不想只使用 Users.ToList()
可能效率不高。我只想向 API 每个请求发送 20 或 30 行。接下来的 20 行和接下来的 20 行我想这样做,可以吗?
喜欢 Twitter 或 Instagram
这里有什么更好的解决方案?
任何视频或文章。我需要一些建议,
谢谢大家
注意:目前,我正在使用ASP.NET Core 5.0,我正在使用React Native作为移动开发
让您的 API 端点接受页面偏移量和页面大小参数(如何取决于您 - 查询字符串、请求正文的一部分等)。然后,您可以使用 IQueryable<T>
.Skip
和 .Take
扩展方法 return 请求的行集:
var results = _dbContext.YourDbSet
.Skip( pageOffset * pageSize )
.Take( pageSize );
Entity Framework built-in 支持分页。你可以像这样很容易地实现它:
private IQueryable<Users> GetPageOfUsers(this IQueryable<Users> query, int pageNumber, int pageSize = 20)
{
// skip pages to get to the required page number
query = query.Skip(pageSize * pageNumber);
// take the number of entities to fill this page
query = query.Take(pageSize);
return query;
}
然后,您可以像这样调用此扩展方法:
Users.GetPageOfUsers(0, 20).ToList();
值得注意的是,此方法不考虑在页面请求之间可能插入页面中间的行;但是,对于按 database-generated 和 auto-incrementing 主键排序的传统 table,这可能不是 material 问题。