CSDL(개념 스키마 정의 언어)의 CollectionType 요소는 함수 매개 변수 또는 함수 반환 형식이 컬렉션임을 지정합니다. 함수에 대한 자세한 내용은 Function 요소(CSDL)를 참조하십시오. CollectionType 요소는 Parameter 요소 또는 ReturnType 요소의 자식일 수 있습니다. 컬렉션 형식은 ElementType 특성 또는 다음 자식 요소 중 하나를 사용하여 지정할 수 있습니다.
CollectionType
-
참고:
모델에서는 컬렉션 형식을 ElementType 특성과 자식 요소 모두를 사용하여 지정하는지 검사하지 않습니다.
적용 가능한 특성
다음 표에서는 CollectionType 요소에 적용할 수 있는 특성에 대해 설명합니다. DefaultValue, MaxLength, FixedLength, Precision, Scale, Unicode 및 Collation 특성은 EDMSimpleTypes 컬렉션에만 적용할 수 있습니다. 자세한 내용은 패싯(CSDL) 및 개념적 모델 형식을 참조하십시오.
특성 이름 | 필수 여부 | 값 |
---|---|---|
ElementType |
아니요 |
컬렉션의 형식입니다. |
Nullable |
아니요 |
속성에 null 값을 사용할 수 있는지 여부에 따라 True(기본값) 또는 False입니다. ![]()
https://schemas.microsoft.com/ado/2006/04/edm 네임스페이스에 의해 표시되는 CSDL 버전의 복합 형식 속성에는
Nullable="False" 가 있어야 합니다.
|
DefaultValue |
아니요 |
속성의 기본값입니다. |
MaxLength |
아니요 |
속성 값의 최대 길이입니다. |
FixedLength |
아니요 |
속성 값이 고정 길이 문자열로 저장될지 여부에 따라 True 또는 False입니다. |
Precision |
아니요 |
속성 값의 전체 자릿수입니다. |
Scale |
아니요 |
속성 값의 소수 자릿수입니다. |
Unicode |
아니요 |
속성 값이 유니코드 문자열로 저장될지 여부에 따라 True 또는 False입니다. |
Collation |
아니요 |
데이터 소스에 사용될 데이터 정렬 순서를 지정하는 문자열입니다. |
![]() |
---|
주석 특성(사용자 지정 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 >= 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)