Jak powiedział @Ladislav, EF 5 nie obsługuje funkcji OFFSET &FETCH. Powiedziawszy to, chciałem dodać trochę perspektywy. Myślę, że nie powinno to mieć większego znaczenia.
Kiedy kupujesz w ORM, takim jak Entity Framework, pozyskujesz generowanie zapytań (z całkowicie uzasadnionych powodów). Czy EF używa „starszego” CTE
styl zapytania za pomocą Row_Number()
lub nowszy Fetch
/ Offset
jest szczegółem implementacji. Microsoft może zaktualizować kod EF w dowolnym momencie i zmienić generowanie zapytań, aby używać jednego lub drugiego.
Jeśli chcesz mieć kontrolę nad generowaniem zapytań, możesz:
- Użyj funkcji „mapowania procedury składowanej” EF
- Używaj procedur składowanych bezpośrednio z EF (coś, co robię dość często)
- napisz ADO/SQL samodzielnie lub
- użyj bardziej ograniczonej mikroormy, takiej jak masywna/PetaPoco
Czy to ma znaczenie?
Cóż, dla programisty piszącego zapytania nowa składnia będzie mile widzianą ulgą. Z drugiej strony nie pojawia się że istnieje rzeczywista różnica wydajności między stara metoda CTE i nowa składnia. Więc z perspektywy EF - nie do końca. Ponosimy znaczne obciążenie używając EF, metoda stronicowania prawdopodobnie nie będzie punktem przerwania.