EF Core分页

  1. Skip(3).Take(8) 最好显式指定排序规则
  2. 需要知道满足条件的数据的总条数:
    用IQueryable的复用
    LongCount和Count
  3. 页数:long pageCount = (long)Math.Ceiling(count * 1.0 / pageSize);
cs 复制代码
class Program
{
    static async Task Main(string[] args)
    {
        using (MyDbContext ctx = new MyDbContext())
        {
            PrintPage(1, 1);
        }
    }

    /// <summary>
    /// 打印某页数据
    /// </summary>
    /// <param name="pageIndex">页码(从1开始)</param>
    /// <param name="pageSize">每页数据条数</param>
    static void PrintPage(int pageIndex, int pageSize)
    {
        using (MyDbContext ctx = new MyDbContext())
        {
            IQueryable<Book> books = ctx.Books.Where(o => !o.Name.Contains("计算机"));
            var item = books.Skip((pageIndex - 1) * pageSize).Take(pageSize);
            foreach (Book book in item)
            {
                Console.WriteLine(book.Name);
            }
            long count = books.LongCount();
            long pageCount = (long)Math.Ceiling((double)count / pageSize);
            Console.WriteLine("总页数:" + pageCount);
        }
    }
}
相关推荐
时光追逐者4 小时前
在 .NET 9 中使用 Scalar 替代 Swagger
开源·c#·.net·.netcore·微软技术
csdn_aspnet15 小时前
.NET Core NPOI 导出图片到Excel指定单元格并自适应宽度
excel·.netcore
忧郁的蛋~1 天前
ASP.NET Core的部署、维护、日志记录和错误处理
c#·asp.net·.netcore
小兜全糖(xdqt)1 天前
.net core 中使用AsyncLocal传递变量
.netcore
CS软件开发框架1 天前
.NETCore WebApi阻止接口重复调用(并发操作)
.net·.netcore
yz-俞祥胜2 天前
.Net Core Record 类型
servlet·.netcore
亦世凡华、2 天前
从CRUD到高级功能:EF Core在.NET Core中全面应用(二)
.netcore·数据库迁移·ef core·实体关系
petunsecn3 天前
EFCore HasDefaultValueSql (续1 ValueGeneratedOnAdd)
c#·.netcore
张3蜂3 天前
Copilot 和 Windsurf哪个更适合于.netcore开发
.netcore·copilot