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 の生成: ベスト プラクティス