共用方式為


HOW TO:在概念模型中定義自訂函式 (Entity Framework)

您可以在概念模型中定義自訂函式,方法是將包含 DefiningExpression 項目的 Function 項目加入至 .edmx 檔的概念結構定義語言 (CSDL) 中。 您可以在 CommandText 項目中定義任何 Entity SQL 陳述式,包括參數化陳述式。

如需詳細資訊,請參閱 DefiningExpression (CSDL)User-Defined Functions (Entity SQL)

在概念模型中定義自訂函式

下列程序假設您已在 Visual Studio 的 XML 編輯器中開啟一個 .edmx 檔。 程序提供在儲存體模型中加入自訂函式的高階大綱。 程序後的範例提供關於程序步驟的詳細資訊。

在概念模型中定義自訂函式

  1. Function 項目加入至 .edmx 檔 [概念模型內容] 區段中的 Schema 項目。

    Dd456812.note(zh-tw,VS.100).gif注意:
    您必須使用 ReturnType 屬性指定函式的傳回型別。

    如需詳細資訊,請參閱Function Element (SSDL)Schema Element (SSDL)ReturnType (CSDL)

  2. 針對函式所接受的每個參數,將 Parameter 項目加入至 Function 項目。

    Dd456812.note(zh-tw,VS.100).gif注意:
    函式參數不會加註 @ 之類的前置詞,在定義該函式的 Entity SQL 運算式中,會直接按名稱參考這些參數。您選擇的參數名稱必須不同於您在 Entity SQL 運算式中需使用之其他識別項的參數名稱。

    如需詳細資訊,請參閱 Parameter Element (CSDL)

  3. DefiningExpression 項目加入至新的 Function 項目。

  4. DefiningExpression 項目中定義 Entity SQL 陳述式。

  5. 儲存並關閉 .edmx 檔案。

範例

以下提供 Function 項目的範例,您可以將此項目加入至 .edmx 檔 [概念模型內容] 區段中的 Schema 項目,以定義自訂函式。 將此 Function 項目加入至 School 模型之後,您就可藉此判斷講師受雇之後經過的年份。

如需 School 模型範例的詳細資訊,請參閱Creating the School Sample DatabaseGenerating the School Entity Data Model

<Function Name="YearsSince" ReturnType="Edm.Int32">
  <Parameter Name="date" Type="Edm.DateTime" />
  <DefiningExpression>
    Year(CurrentDateTime()) - Year(date)
  </DefiningExpression>
</Function>

在概念模型中定義函式後,即可從應用程式中的 Entity SQL 查詢呼叫該函式。 如需從 LINQ to Entities 查詢呼叫函式的詳細資訊,請參閱 How to: Call Functions Defined in the Conceptual Model

另請參閱

工作

HOW TO:加入定義查詢 (Entity Framework)
HOW TO:在儲存模型 (Entity Framework) 中定義自訂函數

概念

ADO.NET 實體資料模型設計工具

其他資源

手動編輯 .edmx 檔案 (Entity Framework)。
Entity Data Model 工具
Calling Functions in LINQ to Entities