다음을 통해 공유


ComplexType 요소(CSDL)

ComplexType 요소는 EdmSimpleType 속성 또는 다른 복합 형식으로 구성된 데이터 구조를 정의합니다. EdmSimpleType에 대한 자세한 내용은 개념적 모델 형식을 참조하십시오. 복합 형식은 엔터티 형식 또는 다른 복합 형식의 속성일 수 있습니다. 복합 형식은 복합 형식에서 데이터를 정의한다는 점에서 엔터티 형식과 유사합니다. 그러나 복합 형식과 엔터티 형식 사이에는 약간의 중요한 차이점이 존재합니다.

  • 복합 형식은 식별자나 키를 포함하지 않으므로 독립적으로 존재할 수 없습니다. 복합 형식은 엔터티 형식 또는 다른 복합 형식의 속성으로만 존재할 수 있습니다.

  • 복합 형식은 연결에 참여할 수 없습니다. 연결의 어느 End도 복합 형식이 될 수 없으므로 복합 형식에 대해 탐색 속성을 정의할 수 없습니다.

  • 복합 형식의 스칼라 속성을 각각 null로 설정할 수 있지만 복합 형식 속성의 값은 null일 수 없습니다.

ComplexType 요소는 다음에 나열된 순서대로 자식 요소를 포함할 수 있습니다.

다음 표에서는 ComplexType 요소에 적용할 수 있는 특성에 대해 설명합니다.

특성 이름 필수 여부

Name

복합 형식의 이름입니다. 복합 형식의 이름은 모델 범위 내에 있는 다른 복합 형식, 엔터티 형식 또는 연결의 이름과 같을 수 없습니다.

BaseType

아니요

정의되는 복합 형식의 기본 형식인 다른 복합 형식의 이름입니다.

Cc716799.note(ko-kr,VS.100).gif참고:
이 특성은 https://schemas.microsoft.com/ado/2006/04/edm 네임스페이스에 의해 지정된 CSDL 버전에서 적용할 수 없습니다.복합 형식에 대한 상속은 해당 버전에서 지원되지 않습니다.

Abstract

아니요

복합 형식이 추상 형식인지 여부에 따라 True 또는 False(기본값)입니다.

Cc716799.note(ko-kr,VS.100).gif참고:
이 특성은 https://schemas.microsoft.com/ado/2006/04/edm 네임스페이스에 의해 지정된 CSDL 버전에서 적용할 수 없습니다.해당 버전의 복합 형식은 추상 형식일 수 없습니다.

Cc716799.note(ko-kr,VS.100).gif참고:
주석 특성(사용자 지정 XML 특성)을 원하는 수만큼 ComplexType 요소에 적용할 수 있습니다.그러나 사용자 지정 특성은 CSDL에 예약된 XML 네임스페이스에 속할 수 없습니다.두 사용자 지정 특성의 정규화된 이름은 서로 같을 수 없습니다.

예제

다음 예제에서는 EdmSimpleType 속성인 StreetAddress, City, StateOrProvince, CountryPostalCode를 포함하는 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)