- 调用者直接用 linq 直接写语句即可;
- 总条数和总页数只在第1页时才进行计算;
- 以下类或者方法可根据自身需要进行修改。
分页方法:这个是核心的使用方法,主要是得到当前页数和每页显示记录数。
public static IPagination Paginate(IQueryable<object> query, IIndexFrom from)
{
var Page = from.page > 0 ? from.page : 1;
var PageSize = from.pageSize > 0 && from.pageSize < 100 ? from.pageSize : 10;
var Total = Page == 1 ? query.Count() : 0;
var Pages = Page == 1 && Total > 0 ? (int)Math.Ceiling((decimal)Total / PageSize) : 0;
return new Pagination
{
list = query.Skip((Page - 1) * PageSize).Take(PageSize).AsNoTracking().ToList(),
total = Total,
page = Page,
pageSize = PageSize,
pages = Pages,
};
}
IIndexFrom 接口:可根据需要添加
public interface IIndexFrom
{
[Range(1, in