sql >> Base de Datos >  >> RDS >> Sqlserver

Paginación de Entity Framework y SQL Server 2012

Como dijo @Ladislav, EF 5 no es compatible con OFFSET &FETCH. Dicho esto, quería añadir un poco de perspectiva. No creo que deba importar mucho.

Cuando compra un ORM como Entity Framework, está externalizando su generación de consultas (por razones perfectamente válidas). Si EF usa el CTE 'más antiguo' consulta de estilo con Row_Number() o el Fetch más reciente / Offset es un detalle de implementación. Microsoft podría actualizar el código EF en cualquier momento y cambiar la generación de consultas para usar uno u otro.

Si desea controlar la generación de consultas, puede:

  • Usar la capacidad de 'mapeo de procedimientos almacenados' de EF
  • Usar procedimientos almacenados directamente con EF (algo que hago con bastante frecuencia)
  • escriba el ADO/SQL usted mismo, o
  • usar un micro-orm más limitado como masivo/PetaPoco

Entonces, ¿importa?

Bueno, para un desarrollador que escribe consultas, la nueva sintaxis será un alivio bienvenido. Por otro lado, no aparece que existe una diferencia de rendimiento real entre el antiguo método CTE y la nueva sintaxis. Entonces, desde la perspectiva de EF, no realmente. Incurrimos en una sobrecarga significativa usando EF, el método de paginación probablemente no sea su punto de quiebre.