Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Entity Framework i SQL Server 2012 stronicowanie

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę wykonać wyzwalacz PRZED AKTUALIZACJĄ z serwerem sql?

  2. Jak korzystać z DataContext.ExecuteCommand i uzyskać wartość zwracaną wykonanego przechowywanego proc?

  3. Jak uzyskać łączną sumę

  4. Obliczanie odległości z ogromną bazą danych SQL Server

  5. Jak wyświetlić listę wszystkich pakietów SSIS na Sql Server 2008 przy użyciu T-SQL?