속성(엔터티 데이터 모델)
속성은 엔터티 형식과 복합 형식의 기본 구성 요소입니다. 속성은 엔터티 형식 인스턴스 또는 복합 형식 인스턴스에 포함될 데이터의 모양과 특징을 정의합니다. 개념적 모델의 속성은 클래스에 정의된 속성과 유사합니다. 클래스의 속성이 클래스의 모양을 정의하고 개체에 대한 정보를 전달하는 것과 동일한 방식으로, 개념적 모델의 속성은 엔터티 형식의 모양을 정의하고 엔터티 형식 인스턴스에 대한 정보를 전달합니다.
참고: |
---|
이 항목에서 설명하는 속성은 탐색 속성과는 다릅니다.자세한 내용은 탐색 속성을 참조하십시오. |
속성 정의에는 다음 정보가 들어 있습니다.
속성 이름 (필수적 요소)
속성 형식 (필수적 요소)
패싯 집합 (선택적 요소)
속성에는 기본 데이터(예: 문자열, 정수 또는 부울 값) 또는 구조적 데이터(예: 복합 형식)가 포함될 수 있습니다. 기본 형식인 속성을 스칼라 속성이라고도 합니다. 자세한 내용은 엔터티 데이터 모델: 기본 데이터 형식을 참조하십시오.
참고: |
---|
복합 형식 자체에 복합 형식인 속성이 있을 수 있습니다. |
예제
다음 다이어그램에서는 세 가지 엔터티 형식 Book, Publisher 및 Author가 포함된 개념적 모델을 보여 줍니다. 각 속성의 형식 정보는 다이어그램에 표시되지 않지만 각 엔터티 형식에는 여러 속성이 있습니다. 엔터티 키인 속성은 (키)로 표시됩니다.
ADO.NET Entity Framework는 CSDL(개념 스키마 정의 언어)이라는 DSL(Domain-Specific Language)을 사용하여 개념적 모델을 정의합니다. 다음 CSDL에서는 위의 다이어그램에 표시된 Book 엔터티 형식을 정의하고 XML 특성을 사용하여 각 속성의 형식과 이름을 나타냅니다. 선택적 패싯인 Nullable도 XML 특성을 사용하여 정의됩니다.
<EntityType Name="Book">
<Key>
<PropertyRef Name="ISBN" />
</Key>
<Property Type="String" Name="ISBN" Nullable="false" />
<Property Type="String" Name="Title" Nullable="false" />
<Property Type="Decimal" Name="Revision" Nullable="false" Precision="29" Scale="29" />
<NavigationProperty Name="Publisher" Relationship="BooksModel.PublishedBy"
FromRole="Book" ToRole="Publisher" />
<NavigationProperty Name="Authors" Relationship="BooksModel.WrittenBy"
FromRole="Book" ToRole="Author" />
</EntityType>
다이어그램에 표시된 속성 중 하나는 복합 형식 속성일 수 있습니다. 예를 들어, Publisher 엔터티 형식의 Address 속성은 StreetAddress, City, StateOrProvince, Country 및 PostalCode와 같은 여러 스칼라 속성으로 구성된 복합 형식 속성일 수 있습니다. 이러한 복합 형식의 CSDL 표현은 다음과 같습니다.
<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>