Share via


DefiningQuery 要素 (SSDL)

ストア スキーマ定義言語 (SSDL) の DefiningQuery 要素を使用すると、基になるデータベースで直接 SQL ステートメントを実行できます。 通常、DefiningQuery 要素は、データベース ビューのように使用されますが、データベースではなくストレージ モデルでビューが定義されます。 DefiningQuery 要素で定義されるビューは、EntitySetMapping 要素を通じて概念モデルのエンティティ型にマップできます。 このようなマッピングは、読み取り専用です。 詳細については、「How to: Add a Defining Query」を参照してください。

次の 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 を作成し、データを削除するストアド プロシージャなど、別のパラメーターのセットを使用するストアド プロシージャを呼び出すことができます。

参照

概念

エンティティ フレームワークの概要
SSDL 仕様

その他のリソース

CSDL、SSDL、および MSL 仕様
ADO.NET Entity Data Model Tools