sql >> Databasteknik >  >> RDS >> Sqlserver

Entity Framework och SQL Server 2012 personsökning

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.



  1. Hur infogar man data i två olika tabeller?

  2. MySQL dumpa i CSV-textfiler med kolumnnamn överst?

  3. hur kan mitt sql-skript avgöra om det körs i sqldeveloper eller sqlplus?

  4. SQL Server JSON_Modify, hur uppdaterar jag alla?