为SQL Server 2005/2008编写可重用的数据迭代器

时间:2009-07-19 08:46:22

标签: sql-server iterator sql-server-ce dynamic-sql

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

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

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

也许我太累了或没有受过足够的教育,无法理解这种做法的可接受方式。我认为做一个SQL数据读取器可能是票,但如果我没有弄错你需要保持连接打开,因为你迭代这似乎没有多大意义,另一种方法是只选择数据页返回它并且提供了一个迭代器而不是该集合,当你到达最后它下拉页面时,这将工作,但意味着我必须煮很多SQL结构来支持排序,过滤和分页,但最后可能是溶液

由于

2 个答案:

答案 0 :(得分:0)

以下链接显示了如何使用Entity Framework进行分页:

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

答案 1 :(得分:0)

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

您可以在StackOverflow here上找到示例。