在dataobjects.net中为每个页面选择记录

时间:2011-08-15 17:00:17

标签: select dataobjects.net

我在数据库中有很多记录,而且我有一个控制页面来记录这些记录。如何为每个页面选择记录?例如,我需要从第51条记录到第100条记录中选择记录。我不能使用LINQ表达式。我正在使用dataobjects 3.9。 所以我从

开始
Query q = new Query("select SomeClass objects");

1 个答案:

答案 0 :(得分:1)

使用此查询:

Query q = new Query("select top 100 SomeClass objects");

据我记忆,在DO39的情况下无法指定.Skip - 类似条件,因此您应该手动执行此操作(例如,将.Skip应用于您可以使用的枚举)

在这种情况下会有明显的性能影响,但在计算复杂性方面并不重要。这样做的唯一影响是SQL Server会向客户端发送更多行,但是其他所有必须执行的工作仍然是相同的。

说明这一点的一个例子:

  

如果您要求Google向您展示第1000页的结果,那么无论如何都会如此   找到与您的查询相关的所有文档,计算匹配排名   他们中的每一个,将其排序为至少前1000页的最佳页面   匹配排名,只有在完成所有这项工作后,它才能给你   第1000页。

     

因此,如果有1,000,000,000,000个文件,则计算   相比之下,向客户端发送10K行的复杂性很小   完成所有其他工作。

另请注意,分页的整个想法是显示整个数据集的一小部分。因此,如果您的用户需要分页到例如第1000页,设计有问题。只有两种情况:

  • 用户必须获得一小部分数据(即执行一些搜索)
  • 用户必须获取所有数据(例如,进行备份)

没有中间案例。