CollectionType 要素 (CSDL)
概念スキーマ定義言語 (CSDL) の CollectionType 要素は、関数パラメーターまたは関数の戻り値の型がコレクションであることを指定します。 関数の詳細については、「Function 要素 (CSDL)」を参照してください。 CollectionType 要素は、Parameter 要素または ReturnType 要素の子である場合があります。 コレクションの型は、ElementType 属性で指定することも、次のいずれかの子要素で指定することもできます。
CollectionType
-
注 : ElementType 属性と子要素の両方でコレクションの型を指定すると、モデルの検証は行われません。
適用可能な属性
The following table describes the attributes that can be applied to the CollectionType element. DefaultValue 属性、MaxLength 属性、FixedLength 属性、Precision 属性、Scale 属性、Unicode 属性、および Collation 属性は、EDMSimpleTypes のコレクションみに適用されることに注意してください。 詳細については、「ファセット (CSDL)」および「概念モデルの型」を参照してください。
属性名 | 必須 | Value |
---|---|---|
ElementType |
いいえ |
コレクションの型。 |
Nullable |
いいえ |
プロパティに null 値を割り当てることができるかどうかにより、True (既定値) または False。
注 :
https://schemas.microsoft.com/ado/2006/04/edm 名前空間で示された CSDL のバージョンでは、複合型のプロパティは
Nullable="False" である必要があります。
|
DefaultValue |
いいえ |
プロパティの既定値。 |
MaxLength |
いいえ |
プロパティ値の最大長。 |
FixedLength |
いいえ |
プロパティ値が固定長の文字列として格納されるかどうかにより、True または False。 |
Precision |
いいえ |
プロパティ値の有効桁数。 |
Scale |
いいえ |
プロパティ値の小数点以下桁数。 |
Unicode |
いいえ |
プロパティ値が Unicode 文字列として格納されるかどうかにより、True または False。 |
Collation |
いいえ |
データ ソースで使用する照合順序を指定する文字列。 |
注 : |
---|
CollectionType 要素には、任意の数の annotation 属性 (カスタム XML 属性) を適用できます。However, custom attributes may not belong to any XML namespace that is reserved for 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 >= 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)