zoukankan      html  css  js  c++  java
  • sqlserver ef 分页

    sqlserver分页常用的有两种:

    1.利用row_number

    set statistics time on;
    -- 分页查询(通用型)
    select top pageSize * 
    from (select row_number() 
    over(order by sno asc) as rownumber,* 
    from student) temp_row
    where rownumber>((pageIndex-1)*pageSize);
    
    set statistics time on;
    -- 分页查询第2页,每页有10条记录
    select top 10 * 
    from (select row_number() 
    over(order by sno asc) as rownumber,* 
    from student) temp_row
    where rownumber>10;

    2.利用OFFSET   FETCH NEXT 

    这个是sqlserver 2012及以上才能用

    set statistics time on;
    -- 分页查询(通用型)
    select * from student
    order by sno 
    offset ((@pageIndex-1)*@pageSize) rows
    fetch next @pageSize rows only;
    
    -- 分页查询第2页,每页有10条记录
    select * from student
    order by sno  
    offset 10 rows
    fetch next 10 rows only ;

    EF分页:

    query.Skip((pageIndex - 1) * pageSize).Take(pageSize)

    在sqlserver profiler 调试中发现 EF CORE 的分页用的是 第二种OFFSET   FETCH NEXT 。

  • 相关阅读:
    HQ-day17 CSS样式表基础①
    SQL 常用操作
    EXCEL 批量生成SQL
    js 顺序提交表单
    js 页面回调函数
    C# excel 常用操作
    C#关于LINQ
    JS 表单验证
    关于Cookie
    js 短信验证码功能
  • 原文地址:https://www.cnblogs.com/hpbkin/p/13808385.html
Copyright © 2011-2022 走看看