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);
}
}
}