sql >> Databáze >  >> RDS >> Sqlserver

Entity Framework a SQL Server 2012 Staging

Jak řekl @Ladislav, EF 5 nepodporuje OFFSET &FETCH. Tím jsem chtěl přidat trochu perspektivy. Nemyslím si, že by na tom mělo záležet.

Když si koupíte ORM, jako je Entity Framework, získáváte generování dotazů (z naprosto platných důvodů). Zda EF používá 'starší' CTE styl dotazu pomocí Row_Number() nebo novější Fetch / Offset je detail implementace. Microsoft mohl kdykoli aktualizovat kód EF a změnit generování dotazu tak, aby používal jeden nebo druhý.

Pokud chcete mít kontrolu nad generováním dotazu, buď:

  • Použijte schopnost EF 'mapování uložených procedur'
  • Používejte uložené procedury přímo s EF (což dělám docela často)
  • napište ADO/SQL sami nebo
  • použijte omezenější mikroorganismus, jako je masivní/PetaPoco

Záleží na tom?

Pro vývojáře, kteří píší dotazy, bude nová syntaxe vítanou úlevou. Na druhou stranu je to nezobrazuje se že mezi nimi existuje skutečný rozdíl ve výkonu stará metoda CTE a nová syntaxe. Takže z pohledu EF -- vlastně ne. Vynakládáme značné režijní náklady pomocí EF, metoda stránkování pravděpodobně nebude vaším bodem přerušení.



  1. Testování funkcí PostgreSQL, které spotřebovávají a vracejí rekurzor

  2. PDO:zkontrolujte aktualizovaný nebo vložený záznam pomocí mysql INSERT ON DUPLICATE KEY UPDATE

  3. SQL max() vrací pouze 1 řádek, pokud má sloupec několik maximálních hodnot

  4. Sbíráte velké statistické soubory pomocí pg_stat_statements?