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.