Som @Ladislav sa, EF 5 stöder inte OFFSET &FETCH. Med det sagt ville jag lägga till lite perspektiv. Jag tror inte att det borde spela så stor roll.
När du köper in dig i en ORM som Entity Framework, är du ute och köper din frågegenerering (av helt giltiga skäl). Huruvida EF använder den "äldre" CTE
stilfråga med Row_Number()
eller den nyare Fetch
/ Offset
är en implementeringsdetalj. Microsoft kan uppdatera EF-koden när som helst och ändra frågegenereringen för att använda den ena eller den andra.
Om du vill ha kontroll över frågegenereringen gör du antingen:
- Använd EF:s "mappning av lagrad procedur"
- Använd lagrade procedurer direkt med EF (något jag gör ganska ofta)
- skriv ADO/SQL själv, eller
- använd en mer begränsad mikro-orm som massive/PetaPoco
Så spelar det någon roll?
Tja, för en utvecklare som skriver frågor kommer den nya syntaxen att vara en välkommen lättnad. Å andra sidan är det visas inte att det finns en verklig prestandaskillnad mellan den gamla CTE-metoden och den nya syntaxen. Så ur EF:s perspektiv -- inte riktigt. Vi ådrar oss en betydande omkostnad med EF kommer metoden för personsökning förmodligen inte att vara din brytpunkt.