我正在实现一个数据库供应商中立的DAL库。 ADO.NET(System.Data)中是否有抽象来描述分页?并且,某些供应商的ADO.NET提供程序实现是否支持这样的接口,以便我不必手动处理自定义的SQL语法?
答案 0 :(得分:1)
分页是特定于平台的,因为它要求您从数据库中检索正确的“页面”数据。
不幸的是,我认为没有任何SQL标准可以检索这些页面。
答案 1 :(得分:1)
ADO.Net不支持分页。 LINQ2SQL有,因为Skip和Take运算符是由SQL提供程序使用ROW_NUMBER()函数实现的。实体框架在其Entity-SQL语法中支持SKIP和LIMIT,也支持Linq2EF的LINQ运算符,请参阅How to: Page Through Query Results (Entity Framework)。
LINQ2SQL方法特定于SQL Server,但EF方法是“通用的”,只要您愿意使用EF而不是旧的ADO.Net方法。