Dapper ORM y extensión de paging y clasificación

dapper

Pregunta

Estoy usando Dapper para un DAL genérico que se puede usar tanto para Oracle como para SQL server. ¿Cuál sería la mejor manera de proporcionar métodos de paginación y ordenamiento para que funcione tanto para SQL como para Oracle sin crear / modificar manualmente las declaraciones de SQL? Algo como:

var users= Dapper
           .Query<User>(sqlStatment
                        .Skip(10)
                        .Take(10)); // where sqlStatment string

Respuesta aceptada

Como señaló @Alex, la paginación se realiza de forma diferente en las dos bases de datos que elija, de modo que lo mejor para tener las consultas más optimizadas es escribir consultas separadas para cada una.

Probablemente sería mejor crear dos ensamblados de proveedor de datos cada uno sirviendo cada base de datos:

  • Data.Provider.Sql
  • Data.Provider.Oracle

Y luego configure su aplicación para uno de los dos. Deliberadamente también he creado el espacio de nombres Data.Provider (que puede ser parte de algún conjunto de datos y define todas las interfaces de proveedores de datos (dentro del Data.Provider ) que los dos proveedores principales implementan.



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow