다음을 통해 공유


Schema 요소(CSDL)

Schema 요소는 개념적 모델 정의의 루트 요소입니다. 이 요소에는 개념적 모델을 구성하는 개체, 함수 및 컨테이너에 대한 정의가 포함되어 있습니다.

Schema 요소에는 다음 자식 요소가 0개 이상 포함될 수 있습니다.

Schema 요소에는 Annotation 요소가 0개 또는 한 개 포함될 수 있습니다.

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

Schema 요소는 Namespace 특성을 사용하여 개념적 모델에서 엔터티 형식, 복합 형식 및 연결 개체에 대한 네임스페이스를 정의합니다. 네임스페이스 내에서 두 개체의 이름이 서로 같을 수 없습니다. 네임스페이스는 여러 Schema 요소 및 여러 .csdl 파일에 걸쳐 있을 수 있습니다.

개념적 모델 네임스페이스는 Schema 요소의 XML 네임스페이스와 다릅니다. Namespace 특성에 의해 정의되는 개념적 모델 네임스페이스는 엔터티 형식, 복합 형식 및 연결 형식에 대한 논리적 컨테이너입니다. xmlns 특성이 나타내는 Schema 요소의 XML 네임스페이스는 Schema 요소의 자식 요소 및 특성에 대한 기본 네임스페이스입니다. https://schemas.microsoft.com/ado/YYYY/MM/edm 형식(여기서 YYYY은 연도, MM은 월을 나타냄)의 XML 네임스페이스가 CSDL용으로 예약됩니다. 사용자 지정 요소 및 특성은 이러한 형식의 네임스페이스에 있을 수 없습니다.

적용 가능한 특성

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

특성 이름 필수 여부

Namespace

개념적 모델의 네임스페이스입니다. Namespace 특성 값을 사용하여 형식의 정규화된 이름을 만들 수 있습니다. 예를 들어, Customer라는 EntityType이 Simple.Example.Model 네임스페이스에 있는 경우 EntityType의 정규화된 이름은 SimpleExampleModel.Customer입니다.

System, Transient 또는 Edm 문자열은 Namespace 특성에 대한 값으로 사용할 수 없습니다. Namespace 특성 값은 SSDL 스키마 요소에 있는 Namespace 특성 값과 같을 수 없습니다.

Alias

아니요

네임스페이스 이름 대신 사용되는 식별자입니다. 예를 들어, Customer라는 EntityType이 Simple.Example.Model 네임스페이스에 있고 Alias 특성 값이 Model인 경우 Model.Customer를 EntityType의 정규화된 이름으로 사용할 수 있습니다.

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

예제

다음 예제에서는 EntityContainer 요소, 두 개의 EntityType 요소 및 한 개의 Association 요소를 포함하는 Schema 요소를 보여 줍니다.

<Schema xmlns="https://schemas.microsoft.com/ado/2008/09/edm" 
     xmlns:cg="https://schemas.microsoft.com/ado/2006/04/codegeneration"
     xmlns:store="https://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" 
      Namespace="ExampleModel" Alias="Self">
        <EntityContainer Name="ExampleModelContainer">
          <EntitySet Name="Customers" 
                     EntityType="ExampleModel.Customer" />
          <EntitySet Name="Orders" EntityType="ExampleModel.Order" />
          <AssociationSet 
                      Name="CustomerOrder" 
                      Association="ExampleModel.CustomerOrders">
            <End Role="Customer" EntitySet="Customers" />
            <End Role="Order" EntitySet="Orders" />
          </AssociationSet>
        </EntityContainer>
        <EntityType Name="Customer">
          <Key>
            <PropertyRef Name="CustomerId" />
          </Key>
          <Property Type="Int32" Name="CustomerId" Nullable="false" />
          <Property Type="String" Name="Name" Nullable="false" />
          <NavigationProperty 
                   Name="Orders" 
                   Relationship="ExampleModel.CustomerOrders" 
                   FromRole="Customer" ToRole="Order" />
        </EntityType>
        <EntityType Name="Order">
          <Key>
            <PropertyRef Name="OrderId" />
          </Key>
          <Property Type="Int32" Name="OrderId" Nullable="false" />
          <Property Type="Int32" Name="ProductId" Nullable="false" />
          <Property Type="Int32" Name="Quantity" Nullable="false" />
          <NavigationProperty 
                   Name="Customer" 
                   Relationship="ExampleModel.CustomerOrders" 
                   FromRole="Order" ToRole="Customer" />
          <Property Type="Int32" Name="CustomerId" Nullable="false" />
        </EntityType>
        <Association Name="CustomerOrders">
          <End Type="ExampleModel.Customer" 
               Role="Customer" Multiplicity="1" />
          <End Type="ExampleModel.Order" 
               Role="Order" Multiplicity="*" />
          <ReferentialConstraint>
            <Principal Role="Customer">
              <PropertyRef Name="CustomerId" />
            </Principal>
            <Dependent Role="Order">
              <PropertyRef Name="CustomerId" />
            </Dependent>
          </ReferentialConstraint>
        </Association>
      </Schema>

참고 항목

개념

Entity Framework 개요
CSDL 사양

기타 리소스

CSDL, SSDL 및 MSL 사양
ADO.NET Entity Data Model Tools