我使用Dapper作为通用DAL,可用于Oracle和SQL服务器。提供分页和排序方法的最佳方法是什么,以便它既适用于SQL又适用于Oracle而无需手动创建/更改SQL语句?就像是:
var users= Dapper
.Query<User>(sqlStatment
.Skip(10)
.Take(10)); // where sqlStatment string
正如@Alex指出的那样,在您选择的两个数据库上进行分页的方式不同,因此最适合进行大多数优化查询的最佳方法是为每个数据库编写单独的查询。
最好创建两个数据提供程序程序集,每个程序集为每个数据库服务:
然后配置您的应用程序之一。我故意也创建了Data.Provider
命名空间(它可以是某些Data程序集的一部分,并定义了上层提供程序实现的所有数据提供程序接口(在Data.Provider
)。