DefiningQuery 項目 (SSDL)

存放結構定義語言 (SSDL) 內的 DefiningQuery 項目可讓您直接在基礎資料庫中執行 SQL 陳述式。DefiningQuery 項目通常與資料庫檢視的用途類似,但是檢視是在儲存模型而非資料庫中定義。在 DefiningQuery 項目中定義的檢視可以透過 EntitySetMapping 項目對應至概念模型中的實體類型。這些對應是唯讀的。如需詳細資訊,請參閱 How to: Add a Defining Query

下列 SSDL 語法會顯示 EntitySet 的宣告,且後面跟隨著 DefiningQuery 項目 (此項目包含了用來擷取檢視的查詢)。

<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,它會採用特定參數組,再使用不同的參數組呼叫預存程序,例如,會刪除資料的預存程序。

請參閱

概念

Entity Framework 概觀

SSDL 規格

其他資源

CSDL、SSDL 和 MSL 規格

ADO.NET Entity Data Model Tools