【问题标题】:Is there an abstract ADO.NET interface that declares pagination?是否有声明分页的抽象 ADO.NET 接口?
【发布时间】:2009-09-29 01:23:40
【问题描述】:

我正在实现一个数据库供应商中立的 DAL 库。 ADO.NET (System.Data) 中是否有用于描述分页的抽象?而且,某些供应商的 ADO.NET 提供程序实现是否支持这样的接口,这样我就不必手动调整自定义的 SQL 语法了?

【问题讨论】:

  • 我假设您想在数据网格上进行分页?
  • 不一定,但可以。不过,我已经知道如何让 UI 位分页。我要拍摄的是数据库分页(出于性能考虑)。我也知道 T-SQL 语法、PL-SQL 语法等,但我想知道 ADO.NET 中是否有任何东西可以抽象分页查询的声明。
  • 你为什么不使用现有的 ORM?
  • 因为世界需要更多的 DAL 库。多很多。 (j/k)

标签: sql ado.net pagination


【解决方案1】:

ADO.Net 不支持分页。 LINQ2SQL 具有,因为 SkipTake 运算符是由 SQL 提供程序使用 ROW_NUMBER() 函数实现的。 Entity Framework 在其 Entity-SQL 语法中支持 SKIPLIMIT,还支持 Linq2EF 的 LINQ 运算符,请参阅 How to: Page Through Query Results (Entity Framework)

LINQ2SQL 方法特定于 SQL Server,但 EF 方法是“通用的”,只要您愿意使用 EF 而不是旧的 ADO.Net 方法。

【讨论】:

    【解决方案2】:

    分页是非常特定于平台的,因为它要求您从数据库中检索正确的数据“页面”。

    很遗憾,我认为没有任何 SQL 标准可以检索这些页面。

    【讨论】:

    • 不,我知道它没有 ANSI SQL 标准,因为我知道每个提供程序在 SQL 级别实现它的方式不同。我一直在寻找 ADO.NET 抽象,无论是否实现。
    猜你喜欢
    • 2013-07-30
    • 1970-01-01
    • 2011-01-09
    • 2013-12-30
    • 2019-01-05
    • 2011-05-22
    • 2017-05-13
    • 2010-10-13
    • 2011-04-06
    相关资源
    最近更新 更多