DefiningQuery 要素 (SSDL)
ストア スキーマ定義言語 (SSDL) の DefiningQuery 要素を使用すると、基になるデータベースで直接 SQL ステートメントを実行できます。通常、DefiningQuery 要素は、データベース ビューのように使用されますが、データベースではなくストレージ モデルでビューが定義されます。DefiningQuery 要素で定義されるビューは、EntitySetMapping 要素を通じて概念モデルのエンティティ型にマップできます。このようなマッピングは、読み取り専用です。詳細については、「方法: 定義クエリを追加する」を参照してください。
次の SSDL 構文は、ビューを取得するために使用されるクエリを含む DefiningQuery 要素が続く EntitySet の宣言を示します。
<Schema>
<EntitySet Name="Tables" EntityType="Self.STable">
<DefiningQuery>
SELECT TABLE_CATALOG,
'test' as TABLE_SCHEMA,
TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
</DefiningQuery>
</EntitySet>
</Schema>
Entity Framework のストアド プロシージャを使用して、ビューの読み取り/書き込みシナリオを有効にできます。データ ソース ビューまたは Entity SQL ビューを、ストアド プロシージャによるデータ抽出および変更処理のベース テーブルとして使用できます。
DefiningQuery 要素を使用して Microsoft SQL Server Compact 3.5 を対象にすることができます。SQL Server Compact 3.5 ではストアド プロシージャはサポートされていませんが、DefiningQuery 要素を使用して同様の機能を実装することができます。他にこの要素が役立つ状況として、ストアド プロシージャを作成してプログラミング言語で使用されているデータ型とデータ ソースで使用されているデータ型の不一致を克服することができます。特定のパラメーター セットを取る DefiningQuery を作成し、データを削除するストアド プロシージャなど、別のパラメーターのセットを使用するストアド プロシージャを呼び出すことができます。