1

我正在尝试为 SQL 编写数据迭代器,看起来最好的方法是为这个问题编写一些动态 sql。

我希望迭代器支持数据的分页、排序和过滤,理想情况下不迭代内存副本,甚至不首先选择数据,也许 LINQ to SQL 或实体框架会提供类似的东西?

有趣的是,我已经为所有支持 SqlCeResultSet 的数据库的 SQLCE 编写了一个不错的数据迭代器,以及一个 ExecuteResultSet 概念,这使得这非常容易,但这还没有成为功能齐全的服务器数据库产品。我可以想象为什么这基本上是一个嵌入式数据库,您可以将其锁定为单用户模式,并且还减少了语言支持,使其更容易。

也许我只是太累了,或者没有受过足够的教育,无法理解一种可接受的方式。我认为做一个 SQL 数据阅读器可能是票,但如果我没记错的话,你需要在迭代时保持连接打开,这似乎没有多大意义,另一种方法是只选择数据页面返回它并在该集合上提供一个迭代器,当你到达最后它拉下下一页时,这会起作用,但这意味着我必须编写很多 SQL 构造来支持排序、过滤和分页,但最终可能是解决方案。

谢谢

4

2 回答 2

0

这是一个显示如何使用 Entity Framework 进行分页的链接:

http://msdn.microsoft.com/en-us/library/bb738702.aspx

于 2009-07-19T20:51:12.520 回答
0

我同意 Shiraz - 使用 LINQ 执行服务器端分页是可行的方法。您可以使用完全相同的逻辑来分页对象集合(实现 IEnumerable),就像在 SQL 中执行服务器端分页一样。

您可以在此处找到有关 StackOverflow 的示例。

于 2009-07-19T20:59:00.273 回答