是否有一个声明分页的抽象ADO.NET接口?

时间:2009-09-27 23:59:01

标签: sql ado.net pagination

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

2 个答案:

答案 0 :(得分:1)

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

不幸的是,我认为没有任何SQL标准可以检索这些页面。

答案 1 :(得分:1)

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

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