Wie @Ladislav sagte, unterstützt EF 5 OFFSET &FETCH nicht. In Anbetracht dessen wollte ich ein wenig Perspektive hinzufügen. Ich denke nicht, dass es viel ausmachen sollte.
Wenn Sie sich in ein ORM wie Entity Framework einkaufen, lagern Sie Ihre Abfragegenerierung aus (aus absolut triftigen Gründen). Ob EF den „älteren“ CTE
verwendet Stilabfrage mit Row_Number()
oder das neuere Fetch
/ Offset
ist ein Implementierungsdetail. Microsoft könnte den EF-Code jederzeit aktualisieren und die Abfragegenerierung ändern, um das eine oder andere zu verwenden.
Wenn Sie die Abfragegenerierung steuern möchten, können Sie entweder:
- Verwenden Sie die 'Stored Procedure Mapping'-Fähigkeit von EF
- Gespeicherte Prozeduren direkt mit EF verwenden (was ich ziemlich oft mache)
- ADO/SQL selbst schreiben, oder
- Verwenden Sie ein eingeschränkteres Mikro-Orm wie Massive/PetaPoco
Spielt es also eine Rolle?
Nun, für einen Entwickler, der Abfragen schreibt, wird die neue Syntax eine willkommene Erleichterung sein. Andererseits ist es wird nicht angezeigt dass es einen echten Leistungsunterschied zwischen gibt die alte CTE-Methode und die neue Syntax. Aus Sicht von EF also nicht wirklich. Uns entsteht ein erheblicher Overhead Wenn Sie EF verwenden, ist die Paging-Methode wahrscheinlich nicht Ihr Haltepunkt.