在使用 Entity Framework Core(EF Core)进行分页查询时,你可以借助以下方法来实现:
-
使用
Skip
和Take
方法:Skip
方法用于跳过指定数量的记录,而Take
方法用于选择指定数量的记录。结合使用这两个方法,可以实现分页功能。int pageNumber = 1; // 当前页码 int pageSize = 10; // 每页显示的记录数var query = dbContext.Products // 数据库上下文的查询.Skip((pageNumber - 1) * pageSize) // 跳过前面的记录.Take(pageSize); // 取得当前页的记录var result = query.ToList(); // 执行查询
-
使用扩展方法
Paginate
:你也可以自定义一个扩展方法,将分页逻辑封装在其中,以便在多个地方重复使用。public static class QueryableExtensions {public static IQueryable<T> Paginate<T>(this IQueryable<T> query, int pageNumber, int pageSize){return query.Skip((pageNumber - 1) * pageSize).Take(pageSize);} }var pageNumber = 1; // 当前页码 var pageSize = 10; // 每页显示的记录数var query = dbContext.Products.Paginate(pageNumber, pageSize);var result = query.ToList();
这些方法允许你指定当前页码和每页显示的记录数,从而实现分页查询。你可以将它们应用于你的 EF Core 查询中,根据需要进行修改和定制。