sql >> データベース >  >> RDS >> Sqlserver

Entity Framework と SQL Server 2012 のページング

    @Ladislav が言ったように、EF 5 は OFFSET と FETCH をサポートしていません。そうは言っても、私は少し視点を追加したいと思いました。大した問題ではないと思います。

    Entity Framework のような ORM を購入すると、クエリの生成を外部に委託することになります (完全に正当な理由により)。 EF が「古い」CTE を使用するかどうか Row_Number() を使用したスタイル クエリ または新しい Fetch / Offset 実装の詳細です。 Microsoft はいつでも EF コードを更新し、クエリ生成を変更してどちらか一方を使用することができます。

    クエリの生成を制御したい場合は、次のいずれかを行います:

    • EF の「ストアド プロシージャ マッピング」機能を使用する
    • ストアド プロシージャを EF で直接使用する (私が頻繁に行うこと)
    • ADO/SQL を自分で作成するか、
    • massage/PetaPoco などのより制限されたマイクロオームを使用する

    それは重要ですか?

    クエリを作成する開発者にとって、新しい構文は歓迎すべき安心となるでしょう。一方、それは 表示されない 実際のパフォーマンスの違い があること 古い CTE メソッドと新しい構文。 EF の観点から言えば、そうではありません。 かなりのオーバーヘッド が発生します EF を使用する場合、ページングの方法はおそらくブレークポイントにはなりません。



    1. PostgreSQL:ブール列のインデックスを作成します

    2. テーブルのセットでCDCを有効にする方法、またはSQLServerのデータベース内のすべてのテーブルで有効にする方法-SQLServerチュートリアル

    3. PHPを使用してチェックボックスの値をmysqlデータベースに保存する方法

    4. Arelを使用してCTEを表現する