using Microsoft.EntityFrameworkCore; using System; using System.Linq; using System.Threading.Tasks; namespace Masuit.Tools.Models { public static partial class IQueryableExt { /// /// 生成分页集合 /// /// /// /// 当前页 /// 页大小 /// public static async Task> ToPagedListAsync(this IQueryable query, int page, int size) { var totalCount = await query.CountAsync(); if (page * size > totalCount) { page = (int)Math.Ceiling(totalCount / (size * 1.0)); } if (page <= 0) { page = 1; } var list = await query.Skip(size * (page - 1)).Take(size).ToListAsync(); return new PagedList(list, page, size, totalCount); } } }