(整理)EF分页的实现
最近做一个小功能,需要数据分页,因为小框架使用的是EF,因此查询了一下EF的分页。
EF分页主要用到了skip和take两个方法:
GetListBy(lamda xxxxx).skip(PageSize *PageIndex).take(PageSize)
PageSize是每页的大小、PageIndex是当前的页数
1)添加内容,调整界面
- 界面上增加按钮:增加上一页、下一页等按钮,供用户使用
- 增加变量保存:增加当前页、数据总量等数据
2)增加ADO.NET查询
本想直接使用EF的count来获取数量,结果是慢的惨不忍睹,然后用ADO.NET直接查数量,这样不会造成延迟。
3)用EF查询数据
当查询出数量,接着用EF将第一页数据获取上来(注意,步骤2和3查询条件需要一致,否则出错)
4)上一页和下一页
另起一个方法,直接用EF的条件来获取下一页或上一页,然后根据下面进行按钮控制。
代码就不贴了,参考资料附一下:
https://www.cnblogs.com/M-LittleBird/p/5852395.html
https://blog.csdn.net/augus3344/article/details/45378877
- 根据页数据量和总量的对比,判断当前页是否最后一页
- 根据页码来判断当前页有无上一页
经简单测试,几十万条数据完成没问题。
5)导出的问题
分页的数据比较零碎,不能作为导出的数据来源,导出使用相同条件的ADO.NET进行重新查询,然后导出(注意,此处是查数据,步骤2仅仅查询数量)
(整理)EF分页的实现的更多相关文章
- EF分页中的陷阱
(一) 前言 EF使用非常简单,但是如果使用不当就会误入EF陷阱中. ...
- 存储过程分页 Ado.Net分页 EF分页 满足90%以上
存储过程分页: create proc PR_PagerDataByTop @pageIndex int, @pageSize int, @count int out as select top(@p ...
- .NET Core使用EF分页查询数据报错:OFFSET语法错误问题
在Asp.Net Core MVC项目中使用EF分页查询数据时遇到一个比较麻烦的问题,系统会报如下错误: 分页查询代码: ) * condition.PageSize).Take(condition. ...
- EF 分页查询优化
按照通常的方式分页查询至少要查询数据两遍,一个操作是查询总数,另一个是查询数据,这样有些耗时 这里介绍一个基于EF的插件 EntityFramework.Extended,当然这个插件有很多的功能,比 ...
- EF分页问题探讨之 OrderBy
EntityFramework 应用场景 最近被应用程序中页面加载慢的问题所折磨,看似容易的问题,其实并不容易(已经持续两天时间了),经过“侦查”,发现了两个“嫌疑犯”: EntityFramewor ...
- 利用JqGrid结合ashx及EF分页显示列表之二
上一篇文章简单利用JqGrid及ashx进行一个数据列表的显示,要文的重点是利用EF的分页与JqGrid进行结合,EF本文只是简单运用所以没有很规范,重点还是JqGrid分页的实现;本实例把JqGri ...
- 关于EF分页查询报错(Count must have a non-negative value.)的解决方案
具体的异常信息如下,一开始没有写日志只看到错误信息:Count must have a non-negative value.,从表面意思可以看出来是Count值出现了负数,所以报错,查了半天的原因也 ...
- EF分页
先来看看几个LINQ to SQL的几个函数. Take 说明:获取集合的前n个元素:延迟.即只返回限定数量的结果集. var q = ( from e in db.Employees order ...
- EF分页查询
/// <summary> /// 分页查询 + 条件查询 + 排序 /// </summary> /// <typeparam name="Tkey" ...
随机推荐
- VS2015在win10上编译的程序不能在Win7上运行的原因
研究了下,搞懂原理了.是VS 2015 编译的问题,因为我是Win 10 ,所以会用到win 10 的SDK ,这个SDK 依赖了Universal C Runtime ,就是API-MS-CRT-X ...
- Python—全局变量、局部变量、匿名函数
局部变量和全局变量 college1 = 'JMU' #全局变量 def change_name(name): college1 = 'LiGong' #局部变量,此函数是其作用域 # global ...
- PHP socket服务端与客户端的简易通信
今天学习socket通信的同时,顺便整理了下以前初识socket的知识. 现在关于php的socket通信,有些框架已经十分成熟了,比如 swoole 和 workerman,这两个大家可以学习学习 ...
- Beta 冲刺 (2/7)
Beta 冲刺 (2/7) 队名:第三视角 组长博客链接 本次作业链接 团队部分 团队燃尽图 工作情况汇报 张扬(组长) 过去两天完成了哪些任务 文字/口头描述 为utils_wxpy.py添加注释 ...
- Android开发 ---多线程操作:Handler对象,消息队列,异步任务下载
效果图: 1.activity_main.xml 描述:定义了六个按钮 <?xml version="1.0" encoding="utf-8"?> ...
- Selenium HTMLTestRunner 执行测试成功但无法生成报告
为什么用PyCharm或者Eclipse执行测试成功但无法生成HTMLTestRunner报告 最近遇到一些人问这样的问题: 他们的代码写的没问题,执行也成功了,但就是无法生成HTMLTestRunn ...
- TP5 强制下载PDF
为什么叫强制下载 因为你点击你的PDF文件路劲的话 浏览器是默认字网页上打开,而不是下载 我们需要做的就是 修改header头信息 使其变为下载状态 //下载PDF public functi ...
- tp5 Excel导入
/** * 导入Excel功能 */ public function import(){ if (!empty($_FILES)) { $file = request()->file('impo ...
- Tex_安装_在Ubuntu系统下
$\LaTeX$是一个强大的排版软件,在数学公式.表格.甚至是科学绘图方面有着独特优势.本文在Ubuntu系统下,整理Tex安装相关的操作,以为备忘.所引链接都未同作者商量,如有不妥望及时告知. 命令 ...
- 群等变网络的pytorch实现
CNN对于旋转不具有等变性,对于平移有等变性,data augmentation的提出就是为了解决这个问题,但是data augmentation需要很大的模型容量,更多的迭代次数才能够在训练数据集合 ...