sql >> Database >  >> RDS >> Sqlserver

Entity Framework en SQL Server 2012-paging

Zoals @Ladislav al zei, ondersteunt EF 5 OFFSET &FETCH niet. Dat gezegd hebbende, wilde ik een beetje perspectief toevoegen. Ik denk niet dat het veel uit zou moeten maken.

Wanneer u een ORM zoals Entity Framework koopt, besteedt u uw querygeneratie uit (om volkomen geldige redenen). Of EF de 'oudere' CTE gebruikt stijlquery met Row_Number() of de nieuwere Fetch / Offset is een uitvoeringsdetail. Microsoft kan de EF-code op elk moment bijwerken en het genereren van zoekopdrachten wijzigen om de een of de ander te gebruiken.

Als u controle wilt over het genereren van zoekopdrachten, kunt u ofwel:

  • Gebruik EF's 'stored procedure mapping' mogelijkheid
  • Gebruik opgeslagen procedures rechtstreeks met EF (iets wat ik vrij vaak doe)
  • schrijf de ADO/SQL zelf, of
  • gebruik een beperktere micro-vorm zoals massief/PetaPoco

Dus maakt het uit?

Welnu, voor een ontwikkelaar die vragen schrijft, zal de nieuwe syntaxis een welkome opluchting zijn. Aan de andere kant is het verschijnt niet dat er een echt prestatieverschil is tussen de oude CTE-methode en de nieuwe syntaxis. Dus vanuit het perspectief van EF -- niet echt. We maken aanzienlijke overhead als je EF gebruikt, zal de pagingmethode waarschijnlijk niet je breekpunt zijn.



  1. Uniciteitsvalidatie in database wanneer validatie een voorwaarde heeft

  2. bulk verzamelen met voor update

  3. Kan sorteerconflict niet oplossen

  4. Hoe kijk je vooruit in regex?