CollectionType 元素 (CSDL)

以概念架构定义语言 (CSDL) 表示的 CollectionType 元素指定函数参数或函数返回类型为一个集合。 有关函数的详细信息,请参阅 Function 元素 (CSDL)CollectionType 元素可以是 Parameter 元素ReturnType 元素的子元素。 可以使用 ElementType 特性或以下子元素之一指定集合的类型:

  • CollectionType

  • ReferenceType

  • RowType

  • TypeRef

    Ee476606.note(zh-cn,VS.100).gif注意:
    如果同时使用 ElementType 特性和子元素指定集合的类型,则不会对模型进行验证。

适用的特性

下表介绍可应用于 CollectionType 元素的特性。 注意:DefaultValueMaxLengthFixedLengthPrecisionScaleUnicodeCollation 特性只适用于 EDMSimpleTypes 的集合。 有关更多信息,请参见方面 (CSDL)概念模型类型

特性名称 是否必需

ElementType

集合的类型。

Nullable

True(默认值)或 False,具体取决于属性是否可以具有 null 值。

Ee476606.note(zh-cn,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-cn,VS.100).gif注意:
可以将任何数量的批注特性(自定义 XML 特性)应用于 CollectionType 元素。然而,自定义特性可能不属于为 CSDL 保留的任何 XML 命名空间。任何两个自定义特性的完全限定名称都不能相同。

示例

下面的示例演示一个模型定义函数,它使用 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>

另请参见

概念

实体框架概述
CSDL 规范
FunctionImport 元素 (CSDL)

其他资源

CSDL、SSDL 和 MSL 规范
ADO.NET Entity Data Model Tools