用LINQ(C#)实现分页?

sar*_*rat 3 c# linq sql-server sql-server-2008 linq-to-sql

我是数据库应用程序的新手.

我想用更低的内存占用来实现分页.该应用程序连接到MS SQL Server 2008 R2 DB.

我的表由数千条记录组成,应用程序可以使用给定的条件查询记录.

使用LINQ-SQL进行查询的当前实现和整个数据将返回给应用程序.如果查询返回太多结果,则可能耗尽进程内存.因此,我想将其作为页面实现.

我在网上遇到了一些可以对数据进行分页的存储过程.

我不确定标准分页是否可以帮助我满足以下要求

  • 减少内存占用,仅按需返回所需结果.
  • 保留查询状态.当用户在视图中看到数据时,可以更新相同的记录.因此,无论表的当前状态如何,都要保持结果的状态和数量,而不管最后一个查询是什么.
  • 如果LINQ用于实现分页,那么这会加载进程来存储整个结果吗?

Asi*_*taq 5

分页使用Linq不是问题,你可以使用Take()和进行分页Skip()

var page = list.Skip((pageNo - 1) * pageSize)
               .Take(pageSize)
Run Code Online (Sandbox Code Playgroud)