Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Entity Framework и SQL Server 2012 Пейджинг

Както каза @Ladislav, EF 5 не поддържа OFFSET &FETCH. С това казано, исках да добавя малко перспектива. Не мисля, че трябва да има голямо значение.

Когато се включите в ORM като Entity Framework, вие сте извън източника на генериране на вашата заявка (поради напълно основателни причини). Дали EF използва „по-стария“ CTE стилова заявка с Row_Number() или по-новия Fetch / Offset е детайл от изпълнението. Microsoft може да актуализира EF кода по всяко време и да промени генерирането на заявка, за да използва едното или другото.

Ако искате контрол върху генерирането на заявка, вие:

  • Използвайте възможността на EF за „съпоставяне на съхранена процедура“
  • Използвайте съхранени процедури директно с EF (нещо, което правя доста често)
  • напишете ADO/SQL сами или
  • използвайте по-ограничен микроорм като massive/PetaPoco

Значи има ли значение?

Е, за програмист, който пише заявки, новият синтаксис ще бъде добре дошло облекчение. От друга страна, той не се показва че има реална разлика в производителността между стария CTE метод и новия синтаксис. Така че от гледна точка на EF - всъщност не. Поемаме значителни разходи използвайки EF, методът на страниране вероятно няма да бъде вашата точка на прекъсване.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Преобразувайте текста на текстовото поле в цяло число

  2. Как да определите първичния ключ за таблица в SQL Server?

  3. Променете разделителя на запетая, когато изпращате по имейл резултати от заявка в SQL Server (T-SQL)

  4. Заявка за полета за дата и час с милисекунди дава грешен резултат в SQL Server

  5. вмъкнете XML файл в SQL чрез SSIS