使用LINQ(C#)实现分页?

3

我是一个数据库应用的新手。

我希望实现低内存占用的分页功能。该应用程序连接到 MS SQL Server 2008 R2 数据库。

我有一张包含数千条记录的表,应用程序可以使用给定的条件查询记录。

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

我在网上找到了一些可以分页数据的存储过程。

我不确定标准分页是否能够满足以下要求:

  • 减少内存占用,在需求时只返回所需结果。
  • 保留查询状态。用户在查看视图中的数据时可以更新相同的记录。因此,无论表的当前状态如何,都必须维护状态和结果数量,而与最后一次查询相关。
  • 如果使用 LINQ 实现分页,这会加载进程以存储整个结果吗?

嗨,请检查我的答案。我已经写了一篇相关文章,并因此获得了奖励。 - Pranay Rana
2个回答

5

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

var page = list.Skip((pageNo - 1) * pageSize)
               .Take(pageSize)

请问您能否就保留结果状态发表评论? - sarat
有许多方法可以实现它,其中一种方法是在前端设置缓存并在用户界面上显示获取的记录。 - Asif Mushtaq
是的,但有时这可能会耗尽进程内存!可能需要使用文件来处理。 - sarat

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接