【问题标题】:Implement Pagination with LINQ (C#)?使用 LINQ (C#) 实现分页?
【发布时间】:2012-07-12 05:17:06
【问题描述】:

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

我想以较低的内存占用实现分页。应用程序连接到 MS SQL Server 2008 R2 DB。

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

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

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

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

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

【问题讨论】:

  • 嗨,看看我的答案,我已经写了一篇文章,并以同样的价格赢得了价格......

标签: c# sql-server linq sql-server-2008 linq-to-sql


【解决方案1】:

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

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

【讨论】:

  • 您能否评论一下保留结果的状态?
  • 有很多方法可以做到这一点,一种方法是在前端缓存并在 UI 上显示获取的记录。
  • 是的,但有时这可能会耗尽进程内存!可能必须处理文件。
【解决方案2】:

网格视图控件具有以下特点:

  • Linq 2 SQL 支持
  • 使用 Linq 2 SQL 自定义分页
  • 显示排序方向
  • 分页器中的下拉菜单调整页面中的记录数

LINQ TO SQL GridView (Enhanced Gridview)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-15
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 2017-10-12
    相关资源
    最近更新 更多