次の方法で共有


SQL 生成

Entity Framework のプロバイダーを作成する場合は、Entity Framework コマンド ツリーを特定のデータベースが認識できる SQL (たとえば、SQL Server の場合は Transact-SQL、Oracle の場合は PL/SQL) に変換する必要があります。 ここでは、Entity Framework プロバイダーの SQL 生成コンポーネント (SELECT クエリ用) の開発方法を説明します。 INSERT、UPDATE、および DELETE の各クエリの詳細については、「変更 SQL 生成」を参照してください。

このセクションの内容を理解するには、Entity Framework と ADO.NET プロバイダー モデルについての知識が必要です。 また、コマンド ツリーと DbExpression について理解している必要もあります。

SQL 生成モジュールの役割

Entity Framework プロバイダーの SQL 生成モジュールは、指定されたクエリ コマンド ツリーを、SQL:1999 準拠のデータベースを対象とする 1 つの SQL SELECT ステートメントに変換します。 生成される SQL 内の入れ子になったクエリは、できるだけ少なくする必要があります。 SQL 生成モジュールによって出力クエリ コマンド ツリーを簡素化する必要はありません。 これは、結合の排除や連続するフィルター ノードの折りたたみなどにより、Entity Framework が実行する処理です。

DBProviderServices クラスは、SQL 生成レイヤーにアクセスしてコマンド ツリーを DbCommands に変換するための開始点となります。

このセクションの内容

コマンド ツリーの構造

コマンド ツリーからの SQL の生成: ベスト プラクティス

サンプル プロバイダーでの SQL 生成

参照

概念

Entity Framework データ プロバイダーの作成