共用方式為


CollectionType 項目 (CSDL)

概念結構定義語言 (CSDL) 中的 CollectionType 元素會指定函式參數或函式傳回型別為集合。 如需函式的詳細資訊,請參閱 Function 項目 (CSDL)CollectionType 項目可以是 Parameter 項目ReturnType 項目的子系。 集合的型別可以使用 Type 屬性或下列其中一個子項目來指定:

  • CollectionType

  • ReferenceType

  • RowType

  • TypeRef

    Ee476606.note(zh-tw,VS.100).gif注意:
    如果同時以 Type 屬性和子項目指定集合的型別,則模型無法驗證。

適用屬性

下表描述的屬性可套用至 CollectionType 項目。 請注意,DefaultValueMaxLengthFixedLengthPrecisionScaleUnicodeCollation 屬性僅適用於 EDMSimpleTypes 的集合。 如需詳細資訊,請參閱 Facet (CSDL)概念模型型別

屬性名稱 必要

Type

集合的型別。

Nullable

True (預設值) 或 False 是根據屬性是否可以有 Null 值而定。

Ee476606.note(zh-tw,VS.100).gif注意:
在 https://schemas.microsoft.com/ado/2006/04/edm 命名空間所指的 CSDL 版本中,複雜型別屬性必須是 Nullable="False"

DefaultValue

屬性的預設值。

MaxLength

屬性值的最大長度。

FixedLength

TrueFalse 是根據屬性值是否可以儲存為固定長度的字串而定。

Precision

屬性值的有效位數。

Scale

屬性值的小數位數。

Unicode

TrueFalse 是根據屬性值是否儲存為 Unicode 字串而定。

Collation

指定資料來源中使用之定序順序的字串。

Ee476606.note(zh-tw,VS.100).gif注意:
可以將任何數量的註釋屬性 (自訂 XML 屬性) 套用至 CollectionType 項目。 不過,自訂屬性不可屬於任何 XML 命名空間,這是保留供 CSDL 使用。 任兩個自訂屬性的完整名稱不能相同。

範例

下列範例示範的模型定義函式使用 CollectionType 項目,指定函式傳回 Person 實體類型的集合 (依 ElementType 屬性所指定)。

<Function Name="LastNamesAfter">
       <Parameter Name="someString" Type="Edm.String"/>
       <ReturnType>
            <CollectionType  ElementType="SchoolModel.Person"/>
       </ReturnType>
       <DefiningExpression>
            SELECT VALUE p 
            FROM SchoolEntities.People AS p 
            WHERE p.LastName >= someString
       </DefiningExpression>
</Function>

下列範例示範模型定義的函式,此函式使用 CollectionType 元素指定該函式傳回資料列集合 (依 RowType 元素所指定)。

<Function Name="LastNamesAfter">
  <Parameter Name="someString" Type="Edm.String" />
  <ReturnType>
   <CollectionType>
     <RowType>
       <Property Name="FirstName" Type="Edm.String" Nullable="false" />
       <Property Name="LastName" Type="Edm.String" Nullable="false" />
     </RowType>
   </CollectionType>
  </ReturnType>
  <DefiningExpression>
            SELECT VALUE ROW(p.FirstName, p.LastName)
            FROM SchoolEntities.People AS p
            WHERE p.LastName &gt;= somestring
  </DefiningExpression>
</Function>

下列範例示範的模型定義函式使用 CollectionType 元素,指定該函式接受 Department 實體型別的集合當做參數。

<Function Name="GetAvgBudget">
     <Parameter Name="Departments">
         <CollectionType>
            <TypeRef Type="SchoolModel.Department"/>
         </CollectionType>
          </Parameter>
      <ReturnType Type="Collection(Edm.Decimal)"/>
      <DefiningExpression>
            SELECT VALUE AVG(d.Budget) FROM Departments AS d
      </DefiningExpression>
</Function>

另請參閱

概念

Entity Framework 概觀
CSDL 規格
FunctionImport 項目 (CSDL)

其他資源

CSDL、SSDL 和 MSL 規格
ADO.NET Entity Data Model Tools