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);
        }
    }
}
相关推荐
时光追逐者2 小时前
ASP.NET Core 依赖注入的三种服务生命周期
后端·c#·asp.net·.net·.netcore
武藤一雄1 天前
C# 中线程安全都有哪些
后端·安全·微软·c#·.net·.netcore·线程
csdn_aspnet1 天前
.NET 8 Web 应用、Web API 和 RabbitMQ
rabbitmq·.netcore·.net8
温暖的苹果2 天前
【.Net runtime】corehost(.NET 应用启动过程)
c#·.net·.netcore
csdn_aspnet2 天前
使用 Windows 客户端的 RabbitMQ Messaging for .NET 8 Web API 第 2 部分
windows·rabbitmq·.netcore·.net8
csdn_aspnet2 天前
使用 Windows 客户端的 RabbitMQ Messaging for .NET 8 Web API 第 1 部分
rabbitmq·.net·.netcore·.net8
csdn_aspnet3 天前
ASP.NET Core:创建并验证文档上的数字签名
.netcore·数字签名
喵叔哟7 天前
12.云平台部署
后端·.netcore
爱吃香蕉的阿豪7 天前
NET Core中ConcurrentDictionary详解:并发场景下的安全利器及服务端实践
安全·http·.netcore·高并发
武藤一雄8 天前
彻底吃透.NET中序列化反序列化
xml·微软·c#·json·.net·.netcore