ComplexType 요소는 EdmSimpleType 속성 또는 다른 복합 형식으로 구성된 데이터 구조를 정의합니다. EdmSimpleType에 대한 자세한 내용은 개념적 모델 형식을 참조하십시오. 복합 형식은 엔터티 형식 또는 다른 복합 형식의 속성일 수 있습니다. 복합 형식은 복합 형식에서 데이터를 정의한다는 점에서 엔터티 형식과 유사합니다. 그러나 복합 형식과 엔터티 형식 사이에는 약간의 중요한 차이점이 존재합니다.
복합 형식은 식별자나 키를 포함하지 않으므로 독립적으로 존재할 수 없습니다. 복합 형식은 엔터티 형식 또는 다른 복합 형식의 속성으로만 존재할 수 있습니다.
복합 형식은 연결에 참여할 수 없습니다. 연결의 어느 End도 복합 형식이 될 수 없으므로 복합 형식에 대해 탐색 속성을 정의할 수 없습니다.
복합 형식의 스칼라 속성을 각각 null로 설정할 수 있지만 복합 형식 속성의 값은 null일 수 없습니다.
ComplexType 요소는 다음에 나열된 순서대로 자식 요소를 포함할 수 있습니다.
Documentation(0개 또는 한 개의 요소)
Property(0개 이상의 요소)
Annotation 요소(0개 이상의 요소)
다음 표에서는 ComplexType 요소에 적용할 수 있는 특성에 대해 설명합니다.
특성 이름 | 필수 여부 | 값 |
---|---|---|
Name |
예 |
복합 형식의 이름입니다. 복합 형식의 이름은 모델 범위 내에 있는 다른 복합 형식, 엔터티 형식 또는 연결의 이름과 같을 수 없습니다. |
BaseType |
아니요 |
정의되는 복합 형식의 기본 형식인 다른 복합 형식의 이름입니다. ![]()
이 특성은 https://schemas.microsoft.com/ado/2006/04/edm 네임스페이스에 의해 지정된 CSDL 버전에서 적용할 수 없습니다.복합 형식에 대한 상속은 해당 버전에서 지원되지 않습니다.
|
Abstract |
아니요 |
복합 형식이 추상 형식인지 여부에 따라 True 또는 False(기본값)입니다. ![]()
이 특성은 https://schemas.microsoft.com/ado/2006/04/edm 네임스페이스에 의해 지정된 CSDL 버전에서 적용할 수 없습니다.해당 버전의 복합 형식은 추상 형식일 수 없습니다.
|
![]() |
---|
주석 특성(사용자 지정 XML 특성)을 원하는 수만큼 ComplexType 요소에 적용할 수 있습니다.그러나 사용자 지정 특성은 CSDL에 예약된 XML 네임스페이스에 속할 수 없습니다.두 사용자 지정 특성의 정규화된 이름은 서로 같을 수 없습니다. |
예제
다음 예제에서는 EdmSimpleType 속성인 StreetAddress, City, StateOrProvince, Country 및 PostalCode를 포함하는 Address 복합 형식을 보여 줍니다.
<ComplexType Name="Address" >
<Property Type="String" Name="StreetAddress" Nullable="false" />
<Property Type="String" Name="City" Nullable="false" />
<Property Type="String" Name="StateOrProvince" Nullable="false" />
<Property Type="String" Name="Country" Nullable="false" />
<Property Type="String" Name="PostalCode" Nullable="false" />
</ComplexType>
위의 Address 복합 형식을 엔터티 형식의 속성으로 정의하려면 엔터티 형식 정의에서 속성 형식을 선언해야 합니다. 다음 예제에서는 엔터티 형식(Publisher)의 복합 형식인 Address 속성을 보여 줍니다.
<EntityType Name="Publisher">
<Key>
<PropertyRef Name="Id" />
</Key>
<Property Type="Int32" Name="Id" Nullable="false" />
<Property Type="String" Name="Name" Nullable="false" />
<Property Type="BooksModel.Address" Name="Address" Nullable="false" />
<NavigationProperty Name="Books" Relationship="BooksModel.PublishedBy"
FromRole="Publisher" ToRole="Book" />
</EntityType>
참고 항목
개념
Entity Framework 개요
CSDL 사양
Schema 요소(CSDL)
EntityType 요소(CSDL)
복합 형식 개체(Entity Framework)
기타 리소스
CSDL, SSDL 및 MSL 사양
ADO.NET Entity Data Model Tools
complex type (Entity Data Model)