CollectionType 요소(CSDL)
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)