Parameter 項目 (CSDL)
概念結構定義語言 (CSDL) 中的 Parameter 項目可以是 FunctionImport 項目或 Function 項目的子項目。
FunctionImport 項目的應用
Parameter 項目 (作為 FunctionImport 項目的子項目) 可以用來定義函式匯入的輸入和輸出參數,該函式匯入於 CSDL 中宣告。
Parameter 項目可以擁有下列子項目 (依列出的順序):
Documentation (可允許零或一個項目)
Annotation 項目 (可允許零或更多項目)
適用屬性
以下資料表描述的屬性可套用至 Parameter 項目。
屬性名稱 | 必要 | 值 |
---|---|---|
Name |
是 |
參數名稱。 |
Type |
是 |
參數型別。 值必須是 EDMSimpleType 或是模型範圍內的複雜型別。 如需詳細資訊,請參閱概念模型型別。 |
Mode |
否 |
In、Out 或 InOut,需根據參數是否為輸入、輸出或輸入/輸出參數而定。 |
MaxLength |
否 |
可允許的最大參數長度。 |
Precision |
否 |
參數的精確度。 |
Scale |
否 |
參數的小數位數。 |
注意: |
---|
任何數量的附註屬性 (自訂 XML 屬性) 都可以套用至 Parameter 項目。不過,自訂屬性不可屬於任何 XML 命名空間,這是保留供 CSDL 使用。任兩個自訂屬性的完整名稱不能相同。 |
範例
下列範例顯示 FunctionImport 項目包含一個 Parameter 子項目。 函式接受一個輸入參數,然後傳回實體類型的集合。
<FunctionImport Name="GetStudentGrades"
EntitySet="StudentGrade"
ReturnType="Collection(SchoolModel.StudentGrade)">
<Parameter Name="StudentID" Mode="In" Type="Int32" />
</FunctionImport>
Function 項目的應用
Parameter 項目 (作為 Function 項目的子項目) 可定義函式的參數,該函式於概念模型中定義或宣告。
Parameter 項目可以擁有下列子項目 (依列出的順序):
Documentation (零或一個項目)
CollectionType (零或一個項目)
ReferenceType (零或一個項目)
RowType (零或一個項目)
注意: |
---|
只有 CollectionType、ReferenceType 或 RowType 其中一個項目可以是 Property 項目的子項目。 |
- Annotation 項目 (可允許零或多個項目)
注意: |
---|
Annotation 項目必須出現在所有其他子項目之後。Annotation 項目僅能用於應用程式的概念模型,該應用程式的目標必須是 .NET Framework 4 版或以後版本。這類模型的 XML 命名空間是 https://schemas.microsoft.com/ado/2008/09/edm。 |
適用屬性
以下資料表描述的屬性可套用至 Parameter 項目。
屬性名稱 | 必要 | 值 |
---|---|---|
Name |
是 |
參數名稱。 |
Type |
否 |
參數型別。 參數可以是下列任何一種型別 (或這些型別的集合):
如需這些類型的詳細資訊,請參閱概念模型型別。 |
Nullable |
否 |
True (預設值) 或 False 是根據屬性是否可以有 null 值而定。 |
DefaultValue |
否 |
屬性的預設值。 |
MaxLength |
否 |
屬性值的最大長度。 |
FixedLength |
否 |
True 或 False 是根據屬性值是否可以儲存為固定長度的字串而定。 |
Precision |
否 |
屬性值的準確度。 |
Scale |
否 |
屬性值的小數點位數。 |
Unicode |
否 |
True 或 False 是根據屬性值是否可以儲存為 Unicode 字串而定。 |
Collation |
否 |
指定資料來源中使用之定序順序的字串。 |
注意: |
---|
任何數量的附註屬性 (自訂 XML 屬性) 都可以套用至 Parameter 項目。不過,自訂屬性不可屬於任何 XML 命名空間,這是保留供 CSDL 使用。任兩個自訂屬性的完整名稱不能相同。 |
範例
下列範例顯示使用一個 Parameter 子項目來定義函式參數的 Function 項目。
<Function Name="GetYearsEmployed" ReturnType="Edm.Int32">
<Parameter Name="Instructor" Type="SchoolModel.Person" />
<DefiningExpression>
Year(CurrentDateTime()) - Year(cast(Instructor.HireDate as DateTime))
</DefiningExpression>
</Function>
另請參閱
概念
Entity Framework 概觀
CSDL 規格
EntityContainer 項目 (CSDL)
其他資源
CSDL、SSDL 和 MSL 規格
ADO.NET Entity Data Model Tools
How to: Import a Stored Procedure
How to: Define Custom Functions in the Conceptual Model