Jak řekl @Ladislav, EF 5 nepodporuje OFFSET &FETCH. Tím jsem chtěl přidat trochu perspektivy. Nemyslím si, že by na tom mělo záležet.
Když si koupíte ORM, jako je Entity Framework, získáváte generování dotazů (z naprosto platných důvodů). Zda EF používá 'starší' CTE
styl dotazu pomocí Row_Number()
nebo novější Fetch
/ Offset
je detail implementace. Microsoft mohl kdykoli aktualizovat kód EF a změnit generování dotazu tak, aby používal jeden nebo druhý.
Pokud chcete mít kontrolu nad generováním dotazu, buď:
- Použijte schopnost EF 'mapování uložených procedur'
- Používejte uložené procedury přímo s EF (což dělám docela často)
- napište ADO/SQL sami nebo
- použijte omezenější mikroorganismus, jako je masivní/PetaPoco
Záleží na tom?
Pro vývojáře, kteří píší dotazy, bude nová syntaxe vítanou úlevou. Na druhou stranu je to nezobrazuje se že mezi nimi existuje skutečný rozdíl ve výkonu stará metoda CTE a nová syntaxe. Takže z pohledu EF -- vlastně ne. Vynakládáme značné režijní náklady pomocí EF, metoda stránkování pravděpodobně nebude vaším bodem přerušení.