IQueryable和IEnumerable 快读《ASP.NET Core技术内幕与项目实战》EFCore2.5:集合查询原理揭秘( 二 )

五、最后一个综合案例:分页查询
//定义一个分页查询方法 , 参数为获取第几页-pageIndex , 每页显示几条-pageSizevoid OutputPage(int pageIndex, int pageSize){using var ctx = new MyDbContext();//获取IQueryable集合booksvar books = ctx.Books();//复用books , 计算集合总条数 。LongCount方法和Count的功能一样long count = books.LongCount();//按每页显示条数pageSize , 计算总页数//使用了Math的Ceiling方法 , 如有小数 , 取天花板值 , 最后转换类型为longlong pageCount = (long)Math.Ceiling(count * 1.0 / pageSize);Console.WriteLine($"总页数:{pageCount}");//复用books , 获取指定页码的数据 , 并遍历//使用了Skip和Take方法var pageIndexBooks = books.Skip((pageIndex - 1) * pageSize).Take(pageSize);foreach( var item in pageIndexBooks){Console.WriteLine(item.Title)}}//调用方法OutputPage(1,10); //第1页 , 每页显示10条OutputPage(3,5); //第3页 , 每页显示5条

特别说明:1、本系列内容主要基于杨中科老师的书籍《ASP.NET Core技术内幕与项目实战》及配套的B站视频视频教程 , 同时会增加极少部分的小知识点2、本系列教程主要目的是提炼知识点 , 追求快准狠 , 以求快速复习 , 如果说书籍学习的效率是视频的2倍 , 那么“简读系列”应该做到再快3-5倍

经验总结扩展阅读