转: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

转:c# Linq 的分页[转]相关推荐

  1. C#/Entity Frame Core 使用Linq 进行分页 .Skip() .Take() 的使用方法

    一般使用格式为 int pagesize = 分页大小(每一页大小) int pageindex = 第几页(一般这个变量是随循环递增的) 使用方法 .Skip(pagesize*pageindex) ...

  2. linq学习——分页

    分页方法: public void BindBoundControl<TSource>(IEnumerable<TSource> DataSource, GridView Bo ...

  3. Entity Framewrok 7beta7中不同版本sql server自动生成分页sql语句的问题

    在EF中,使用linq进行分页是很方便的,假如我们有一个EMP表,结构如下: public class Emp{[Key]public Guid No { get; set; }public int ...

  4. 封装EF code first用存储过程的分页方法

    一年半没有做过MVC的项目了,还是很怀念(因为现在项目还是原来的ASPX),个人还是喜欢mvc,最近又开始重拾MVC,感觉既熟悉又陌生. 记录一下封装好的分页代码 首先先说下 我使用EF codefi ...

  5. 用ExtJs+Linq+Wcf打造简单grid

    本系列文章列表 1)Ajax访问Xml Web Service的安全问题以及解决方案 2)Ajax与WCF交互-WCF之美 3) Ajax与Wcf交互-JSON 4) ExtJs与WCF交互:生成树 ...

  6. 《Pro ASP.NET MVC 3 Framework》学习笔记之十三【示例项目SportsStore】

    接着我们添加一个分页功能.修改ProductController,如下所示: public class ProductController : Controller {public int PageS ...

  7. 有了jsRender,妈妈再也不用担心我用jq拼接DOM拼接的一团糟了、页面整齐了、其他伙伴读代码也不那么费劲了...

    写在前面 说来也很巧, 下午再做一个页面,再普通不过的分页列表,我还是像往常一样,基于MVC环境下,我正常用PagedList.MVC AJAX做无刷新分页,这时候问题就来了,列表数据中有个轮播图用到 ...

  8. 跟我学ASP.NET MVC之五:SportsStrore开始

    跟我学ASP.NET MVC之五:SportsStrore开始 摘要: 这篇文章将介绍一个ASP.NET应用程序SportsStore的开发过程. 开始 创建解决方案 创建工程 在New ASP.NE ...

  9. linux防火墙ip黑名单,【转】Linux防火墙(iptables)之黑名单

    iptables删除规则 So if you would like to delete second rule : iptables -D INPUT 2 ---------------------- ...

最新文章

  1. linux c 获取网络接口信息 ioct l函数 ifreq ifconf 结构体 简介
  2. Android 中Message,MessageQueue,Looper,Handler详解+实例
  3. getparameter的使用
  4. Matlab与C++混合编程(依赖OpenCV)
  5. WordPress的varnish内存缓存方案
  6. 网络层:构成超网(CIDR)
  7. 12岁女孩自学成才考上亚利桑那大学,博士母亲的家庭教育造就「天才少女」...
  8. 谁说程序员赚得比医生少?网友:我一年的收入医生一辈子都赚不到
  9. 嗐,别的95后一天两登Nature,你却还不知道有一款工具可以帮你校对英文文稿和回复审稿意见...
  10. DB2 SQLCODE=-803,SQLSTATE=23505,SQLERROR=1
  11. Java进阶:微服务SpringCloud
  12. python 图表控件_10款好用的.NET图表控件推荐
  13. 山东轻工业学院CSDN高校俱乐部参加“新一代语音云发布暨语音开发者大会”与“2012百度开发者大会”体会心得
  14. 使用Python调用OUTLOOK发邮件(带附件)
  15. 数据挖掘➡谈谈为什么学?
  16. db2归档日志与循环日志(转载weiruan85)
  17. c盘空间不足怎么清理(电脑磁盘空间不足怎么清理)
  18. RequireJS介绍与应用
  19. 580013 与600005
  20. RGB YUV的来历及相互转换

热门文章

  1. 网贷,高利贷,套路贷为什么必须铲除?
  2. 关于恐怖小说“分级”及其他:答《北京娱乐信报》记者张守刚问
  3. vue 项目难点_vue项目中遇到的问题汇总
  4. python 公众号爬虫_python_爬虫_微信公众号抓取
  5. 密度图的密度估计_箱形图、小提琴图、直方图……统统可以卡通化!
  6. 代码统计工具有哪几种_跟我学“Linux”小程序Web版开发(四):引入统计及Crash收集...
  7. java的abstract的意思_java – spring中的abstract =“true”是什么意思?
  8. java socket编程实现聊天程序_java Socket编程 聊天程序 服务器端和客户端
  9. MUI主界面菜单同时移动主体部分不出滚动条解决
  10. sencha touch 入门系列 (一)sencha touch 简介