다음을 통해 공유


Property 요소(CSDL)

CSDL(개념 스키마 정의 언어)의 Property 요소는 EntityType 요소, ComplexType 요소 또는 RowType 요소의 자식일 수 있습니다.

EntityType 및 ComplexType 요소 적용

Property 요소(EntityType 또는 ComplexType 요소의 자식 요소)는 엔터티 형식 인스턴스 또는 복합 형식 인스턴스에 포함될 데이터의 모양 및 특징을 정의합니다. 개념적 모델의 속성은 클래스에 정의된 속성과 유사합니다. 클래스의 속성이 클래스의 모양을 정의하고 개체에 대한 정보를 전달하는 것과 동일한 방식으로, 개념적 모델의 속성은 엔터티 형식의 모양을 정의하고 엔터티 형식 인스턴스에 대한 정보를 전달합니다.

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

Nullable, DefaultValue, MaxLength, FixedLength, Precision, Scale, Unicode, Collation, ConcurrencyMode 패싯이 Property 요소에 적용될 수 있습니다. 패싯은 속성 값이 데이터 저장소에 저장된 방식에 대한 정보를 제공하는 XML 특성입니다. 자세한 내용은 패싯(CSDL)을 참조하십시오.

Bb399546.note(ko-kr,VS.100).gif참고:
패싯은 EDMSimpleType 형식의 속성에만 적용할 수 있습니다.자세한 내용은 개념적 모델 형식을 참조하십시오.

적용 가능한 특성

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

특성 이름 필수 여부

Name

속성 이름입니다.

Type

속성 값의 형식입니다. 속성 값 형식은 모델 범위 내에 있는 EDMSimpleType 또는 복합 형식(정규화된 이름으로 표시)이어야 합니다. 자세한 내용은 개념적 모델 형식을 참조하십시오.

Nullable

아니요

속성에 null 값을 사용할 수 있는지 여부에 따라 True(기본값) 또는 False입니다.

Bb399546.note(ko-kr,VS.100).gif참고:
https://schemas.microsoft.com/ado/2006/04/edm 네임스페이스에 의해 표시되는 CSDL 버전의 복합 형식 속성에는 Nullable="False"가 있어야 합니다.

DefaultValue

아니요

속성의 기본값입니다.

MaxLength

아니요

속성 값의 최대 길이입니다.

FixedLength

아니요

속성 값이 고정 길이 문자열로 저장될지 여부에 따라 True 또는 False입니다.

Precision

아니요

속성 값의 전체 자릿수입니다.

Scale

아니요

속성 값의 소수 자릿수입니다.

Unicode

아니요

속성 값이 유니코드 문자열로 저장될지 여부에 따라 True 또는 False입니다.

Collation

아니요

데이터 소스에 사용될 데이터 정렬 순서를 지정하는 문자열입니다.

ConcurrencyMode

아니요

None(기본값) 또는 Fixed입니다. 값이 Fixed로 설정되면 속성 값이 낙관적 동시성 검사에 사용됩니다.

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

예제

다음 예제에서는 3개의 Property 요소가 포함된 EntityType 요소를 보여 줍니다.

<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>

다음 예제에서는 5개의 Property 요소가 포함된 ComplexType 요소를 보여 줍니다.

<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>

RowType 요소 적용

Property 요소(RowType 요소의 자식 요소)는 모델 정의 함수로 전달되거나 모델 정의 함수에서 반환될 수 있는 데이터의 모양 및 특징을 정의합니다. 자세한 내용은 Function 요소(CSDL)를 참조하십시오.

Property 요소에는 다음 자식 요소가 정확히 한 개 있을 수 있습니다.

Property 요소에는 원하는 수만큼의 Annotation 요소가 있을 수 있습니다.

Bb399546.note(ko-kr,VS.100).gif참고:
Annotation 요소는 .NET Framework 버전 4 이상을 대상으로 하는 응용 프로그램에 대한 개념적 모델에서만 허용됩니다.이러한 모델에 대한 XML 네임스페이스는 https://schemas.microsoft.com/ado/2008/09/edm입니다.

적용 가능한 특성

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

특성 이름 필수 여부

Name

속성 이름입니다.

Type

속성 값의 형식입니다.

Nullable

아니요

속성에 null 값을 사용할 수 있는지 여부에 따라 True(기본값) 또는 False입니다.

Bb399546.note(ko-kr,VS.100).gif참고:
https://schemas.microsoft.com/ado/2006/04/edm 네임스페이스에 의해 표시되는 CSDL 버전의 복합 형식 속성에는 Nullable="False"가 있어야 합니다.

DefaultValue

아니요

속성의 기본값입니다.

MaxLength

아니요

속성 값의 최대 길이입니다.

FixedLength

아니요

속성 값이 고정 길이 문자열로 저장될지 여부에 따라 True 또는 False입니다.

Precision

아니요

속성 값의 전체 자릿수입니다.

Scale

아니요

속성 값의 소수 자릿수입니다.

Unicode

아니요

속성 값이 유니코드 문자열로 저장될지 여부에 따라 True 또는 False입니다.

Collation

아니요

데이터 소스에 사용될 데이터 정렬 순서를 지정하는 문자열입니다.

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

예제

다음 예제에서는 모델 정의 함수에 대한 반환 형식의 모양을 정의하는 데 사용되는 Property 요소를 보여 줍니다.

<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 &gt;= somestring
  </DefiningExpression>
</Function>

참고 항목

개념

Entity Framework 개요
CSDL 사양
Schema 요소(CSDL)
FunctionImport 요소(CSDL)

기타 리소스

CSDL, SSDL 및 MSL 사양
ADO.NET Entity Data Model Tools
property (Entity Data Model)
facet (Entity Data Model)