转:c# Linq 的分页[转]

转:http://www.cnblogs.com/leleroyn/archive/2008/05/14/1196811.html

很多学习Linq的朋友肯定有自己所不同的方法,考虑这个问题我所想到的是

用Take(),Skip(),TakeWhile(),SkipUntil()中的方法来实现

首先看Take()是否可用

Take方法的作用是从结果中取固定数量的值,

MydbDataContext mydb=new MydbDataContext("server=.;database=mydb");

var query=from p in mydb.Products                orderby p.id descending                 select p;//取出Products中所用的项按降序排列 如果直接用take()

var q=query.take(n) 这样只能取出前条n记录,但是还是让我们看到了分页的曙光,还是还有个skip吗,skip可以取出除去满足条件的剩下的记录。如果我们要把数据以每页pagesize的数量来进行分页,很简单,很skip(pagersize*pagenum)然后在剩下的记录中take(pagesize)不就得到了想要的数据了么。

 

varq=query.skip(pagesize*pagenum).take(pagesize) 就这么简单。

希望朋友们提供更好的方法来进行分页,同时对这个方法的优劣性,进行批评指导 附上运行时生成的SQL(感谢紫色阴影Boler Guo ) sql server2000: SELECT TOP 20 [t0].[CustomerID], [t0].[CompanyName], [t0].[ContactName], [t0].[ContactTitle], [t0].[Address], [t0].[City], [t0].[Region], [t0].[PostalCode], [t0].[Country], [t0].[Phone], [t0].[Fax] FROM [dbo].[Customers] AS [t0] WHERE NOT (EXISTS( SELECT NULL AS [EMPTY] FROM ( SELECT TOP 10 [t1].[CustomerID] FROM [dbo].[Customers] AS [t1] ) AS [t2] WHERE [t0].[CustomerID] = [t2].[CustomerID] )) sql server 2005 SELECT TOP 10 [t1].[CustomerID], [t1].[CompanyName], [t1].[ContactName], [t1].[ContactTitle], [t1].[Address], [t1].[City], [t1].[Region], [t1].[PostalCode], [t1].[Country], [t1].[Phone], [t1].[Fax] FROM ( SELECT ROW_NUMBER() OVER (ORDER BY [t0].[ContactName]) AS [ROW_NUMBER], [t0].[CustomerID], [t0].[CompanyName], [t0].[ContactName], [t0].[ContactTitle], [t0].[Address], [t0].[City], [t0].[Region], [t0].[PostalCode], [t0].[Country], [t0].[Phone], [t0].[Fax] FROM [dbo].[Customers] AS [t0] ) AS [t1] WHERE [t1].[ROW_NUMBER] > @p0 ORDER BY [t1].[ContactName] -- @p0: Input Int32 (Size = 0; Prec = 0; Scale = 0) [50] -- Context: SqlProvider(Sql2005) Model: AttributedMetaModel Build: 3.5.20XXX.X

转载于:https://www.cnblogs.com/yjg8116/p/3458278.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261009.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html edge浏览器 图片,浏览器时序图及 Microsoft Edge 构架

本文又是我的作业,完成思路借鉴了 版权说明。作业要求针对一款典型浏览器,绘制浏览器处理时序图对用户界面进行操作(如拖拽窗口)带有 JavaScript 脚本 HTML 文档查阅资料,绘制 Edge 浏览器的参考架构浏览器时序图对用户界面进行操作(如拖拽窗…

您需要了解的跨阻放大器——第1部分

跨阻放大器(TIA)是光学传感器(如光电二极管)的前端放大器,用于将传感器的输出电流转换为电压。跨阻放大器的概念很简单,即运算放大器(op amp)两端的反馈电阻(RF&#xff…

Objective-C组合模式(Composite)

什么是组合模式? 官方:将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使用户使用单独对象和组合对象具有一致性。 个人理解:组合模式就相当于一个大家族,每个人都是家族中的一部分,整个家族就…

WP7应用开发笔记(3) 界面设计

界面设计 回顾一下按钮清单: 播放控制播放/暂停Space 停止F4 快进Right 快退Left 快进X2ControlRight 快退X2ControlLeft 快进X3AltRight 快退X3AltLeft音量放大Up 缩小Down 静音M节目下一个PageDown 上一个PageUp基本上就是把这些按钮布置到480*800的屏幕上。 快进…

html手机显示评论列表页面,请问如何完美显示评论列表头像

目前具体思路是通过轮询构建头像,条件是通过判断评论区条目length。问题是有时依然无法显示评论区头像。以下是目前的代码:function showAvatar() {$(.feedbackItem).each(function() {let avatar $(this).children(.feedbackCon).children(span:last).…

几何画板中可以这样选择对象

在使用几何画板过程中,一些用户朋友发现几何画板虽然是在Windows平台上运行的软件,但它选择对象的选择方式常常与一般的Windows绘图软件是有一些差别的,下面将通过详细的讲解,让大家对几何画板选择对象方法有比较系统全面的了解。…

2012 不宜进入的三个技术点(下)

赖勇浩(http://laiyonghao.com)CC 在 2011 年其实风头甚劲,C2011 标准出台,gcc/msvc/clang 都很快速地支持了许多新特性,新兴的移动设备的性能较差,更是 C 的新舞台,在这个时候唱衰 C&#xff0…

菜鸟做HTML5小游戏 - 刮刮乐

继上篇翻翻乐之后,又来刮刮乐。还是先上效果图: 开始demo的世界: 1.css去绘制界面效果。(源码提供) 2.原理:要实现刮刮卡内容的出现,我用div做了背景层去显示刮出的内容结果【重点】。中间Canva…

1 计算机主机里面都有些什么东西,计算机主机和外设分别包括那些东西?

___耐撕Nice___的回答:1、主机是指计算机除去输入输出设备以外的主要机体部分。也是用于放置主板及其他主要部件的控制箱体(容器Mainframe)。通常包括 CPU、内存、主板、光驱、电源、以及其他输入输出控制器和接口。在网络技术中是关于发送与接收信息的终端设备。2、…

AppDynamics赵宇辰:硅谷APM独角兽,打造DevOps领域的智能大脑

近来,关于机器学习的报道很多,国内外的大型互联网企业都在着手对机器学习的研究。对应用性能的高效管理,首先要了解应用的一手数据,通过传统的数据获取方式已经不能满足企业的发展和市场环境,这就需要借助机器学习的技…

江苏有保障的计算机应用技术,2022年江苏单招计算机应用技术专业公办学校名单...

2021年高职单招升学一对一咨询蒲善婷:18983252108(微信)很多考生都存在一个疑问,到底该选择什么样的单招学校和专业?其实啊,我们在选择时首先要了解学校的办学情况和招生专业,看看有没有是不是符合自己的选择条件,是否…

mybatis一对多查询

18 <!-- 19 方式一&#xff1a;嵌套结果&#xff1a;使用嵌套结果映射来处理重复的联合结果的子集 20 封装联表查询的数据(去除重复的数据) 21 select * from class c, teacher t where c.teacher_idt.t_id and c.c_id1 22 --> 23 …

如何选购集成吊顶

吊顶对比-选购-经验篇:集成吊顶顶行业作为一个新兴的行业类别&#xff0c;同时也是一个高速发展的行业&#xff0c;使得集成吊顶市场牌混乱不堪&#xff0c;为大家介绍 正确的选购之法。以下内容由买购网整理&#xff0c;提供给您参考。现在市场上扣板已经有很多品种了&#xf…

php - preg_match

任务&#xff1a;匹配一个函数名或者变量名&#xff0c;如果碰到alpha&#xff0c;numeric&#xff0c;_以外的全部不允许通过。 实验1&#xff1a; <?php //第一个字符不符合就直接退出正则匹配 $str %abcscript%d; var_dump(preg_match(/^(\w*)$/, $str, $matches)); va…

wp网站链接不带html,解决WordPress网站带与不带WWW网址跳转问题

我们在用wordpress搭建网站的时候是不是有些时候发现在输入WWW与不带WWW的地址都可以打开&#xff0c;以前我在配置的时候直接用WWW或者不带WWW只需要在后台设置两个统一的地址就可以。这几天在遇到一个网站发现并不是这样的&#xff0c;即便都设置了WWW的域名&#xff0c;然后…

Android环境搭建遭遇Unsupported major.minor version 52.0

为什么80%的码农都做不了架构师&#xff1f;>>> 首先&#xff0c;个人在windows 10下配置Android的开发环境。由于之前在开发Java web,所以安装了eclipse&#xff0c;MyEclipse,jdk 1.7 等。由于希望开发 android 5.1&#xff0c;早在之前也有开发过Android&#x…

[转] 实战 SSH 端口转发

http://www.cnblogs.com/napoleon_liu/articles/2020759.html转载于:https://www.cnblogs.com/GenghisKhan/archive/2012/02/09/2343468.html

标准用户如何打开计算机管理,WIN7标准账户怎样开启Administrator账户

Win7 标准用户安装软件时需要管理员权限&#xff0c;那么WIN7标准账户怎样开启Administrator账户呢?下文学习啦小编就分享了WIN7标准账户开启Administrator账户的方法&#xff0c;希望对大家有所帮助。WIN7标准账户开启Administrator账户方法一、将标准用户升级为管理员账户。…

linux删除、读取文件原理

linux删除文件原理 LINUX的文件名是存在父目录的block里面&#xff0c;并指向这个文件额inode节点&#xff0c;这个文件的inode节点再标记指向存放这个文件的block的数据块。我们删除一个文件&#xff0c;实际上并不是清楚inode节点和block的数据。只是在这个文件的父目录里面的…

delphi 窗体的释放

关于窗体的释放:Close&#xff08;&#xff09;方法是将窗体隐藏&#xff0c;即form.hide; 释放窗体或是控件的标准用法是Form.Free&#xff0c;其实Free方法只是调用了Destroy&#xff08;&#xff09;方法&#xff0c;在窗体不为nil时进行资源的释放&#xff0c;但并不将窗体…