sql >> Database teknologi >  >> RDS >> Sqlserver

Entity Framework og SQL Server 2012 Paging

Som @Ladislav sagde, understøtter EF 5 ikke OFFSET &FETCH. Når det er sagt, ville jeg tilføje lidt perspektiv. Jeg synes ikke, det burde have den store betydning.

Når du køber ind i et ORM-lignende Entity Framework, er du ude og hente din forespørgselsgenerering (af helt gyldige årsager). Om EF bruger den 'ældre' CTE stilforespørgsel med Row_Number() eller den nyere Fetch / Offset er en implementeringsdetalje. Microsoft kunne opdatere EF-koden på ethvert tidspunkt og ændre forespørgselsgenereringen til at bruge den ene eller den anden.

Hvis du vil have kontrol over forespørgselsgenereringen, skal du enten:

  • Brug EF's 'stored procedure mapping'-funktion
  • Brug lagrede procedurer direkte med EF (noget jeg gør ret ofte)
  • skriv ADO/SQL selv, eller
  • brug en mere begrænset mikro-orm som massive/PetaPoco

Så betyder det noget?

Nå, for en udvikler, der skriver forespørgsler, vil den nye syntaks være en velkommen lettelse. På den anden side er det vises ikke at der er en reel ydeevneforskel mellem den gamle CTE-metode og den nye syntaks. Så fra EF's perspektiv -- ikke rigtig. Vi pådrager os en betydelig overhead ved at bruge EF, vil metoden til personsøgning sandsynligvis ikke være dit brudpunkt.



  1. Postgres bruger ikke indeks på heltalsarray, hvis intarray-udvidelsen er installeret

  2. Sådan laver du pivotering i Oracle 10g

  3. Hvorfor SQL Server ignorerer værdier i strengsammenkædning, når ORDER BY-sætning er angivet

  4. Sådan tjekker du i PHP, hvis der er angivet flere PDO-parametre end nødvendigt