다음을 통해 공유


연결 집합(EDM)

EDM(엔터티 데이터 모델)에서 AssociationSet은 단일 형식의 연결에 대한 논리적 컨테이너입니다. 마찬가지로 엔터티 집합은 같은 형식의 엔터티를 위한 컨테이너입니다. 스키마에 정의된 연결 집합과 엔터티 집합은 응용 프로그램 데이터가 저장되는 데이터베이스 테이블에 매핑됩니다. 엔터티 집합과 연결 집합은 응용 프로그램 코드에서 사용하는 프로그래밍 개체 모델에서 클래스의 기반이 됩니다.

AssociationSet 지정 방식을 사용하는 이유는 두 가지입니다.

  • AssociationSet 끝점의 범위를 지정하기 위해

  • 엔터티 인스턴스 간의 연결을 관리하기 위해

둘 이상의 EntitySet에서 하나의 EntityType을 사용할 수 있으므로 연결 집합에서는 관계 끝점의 범위가 지정되어야 합니다.

AssociationAssociation으로 지정된 두 엔터티 집합에 속하는 둘 이상의 엔터티 인스턴스를 연결합니다. AssociationSet에는 Association의 인스턴스(있는 경우)가 포함됩니다.

엔터티 형식은 엔터티 집합과 엔터티 컨테이너에 논리적으로 포함되고 인스턴스화됩니다. 같은 방식으로, 연결은 연결 집합과 엔터티 컨테이너에서 인스턴스화됩니다.

엔터티 및 엔터티 집합과 달리 연결 및 연결 집합은 추상적 개념입니다. AssociationSet의 각 구현은 파생 형식입니다.

AssociationSet 요소의 Association 특성은 다음 CSDL(개념 스키마 정의 언어) 스키마 구문으로 Association을 지정합니다.

<AssociationSet Name="CustomerOrderSet" Association="CustomerOrderType">

EntitySet의 두 End는 AssociationSetEnd 속성에 지정됩니다. 연결은 네임스페이스 이름으로 정규화되어야 합니다.

<AssociationSet Name="CustomerOrderSet" Association=" 
                        MyCompany.LOBSchema.CustomerOrderType">
    <End Role="Orders" EntitySet="CustomerSet" />
    <End Role="OrderedBy" EntitySet="OrderSet" />
</AssociationSet >

AssociationSetEnd 속성은 이 EntityType 인스턴스에 해당하는 EntitySet 인스턴스를 지정합니다.

다음 예제에서는 두 엔터티 형식, 두 엔터티 집합, 연결, 연결 집합의 선언을 보여 줍니다.

<?xml version="1.0" encoding="utf-8"?>
<Schema xmlns:cg="https://schemas.microsoft.com/ado/2006/04/codegeneration"
    xmlns:edm="https://schemas.microsoft.com/ado/2006/04/edm"
    xmlns="https://schemas.microsoft.com/ado/2006/04/edm"
    Namespace="MyCompany.LOBSchema" Alias="Self">

    <EntityType Name="Customer">
        <Key>
          <Property Name="CustomerId" Type="Int32" Nullable="false" />
        </Key>
    <!-- Other properties -->
    </EntityType>


<EntityType Name="Order">
    <Key>
      <PropertyRef Name="OrderId" />
    </Key>
    <Property Name="OrderId" Type="Int32" Nullable="false" />
    <!-- Other properties -->
</EntityType>

<Association Name="CustomerOrderType">
    <End Role="Orders" Type="Namespace.Customer" Multiplicity="1" />
    <End Role="OrderedBy" Type=" Namespace.Order" Multiplicity="0..*" />
</Association>

<EntityContainer Name="ContainerType">
    <EntitySet Name="CustomerSet" EntityType=" Namespace.Customer" />
    <EntitySet Name="OrderSet" EntityType=" MyCompany.LOBSchema.Order" />
    <AssociationSet Name="CustomerOrderSet" Association="CustomerOrderType">
        <End Role="Orders" EntitySet=" MyCompany.LOBSchema.CustomerSet" />
        <End Role="OrderedBy" EntitySet="MyCompany.LOBSchema.OrderSet" />
    </AssociationSet>
</EntityContainer>

</Schema>

이 예제에서는 먼저 EntityTypeCustomerOrder****엔터티를 정의합니다. 그런 다음 CustomerOrderType이라는 Association을 정의합니다. CustomerSetOrderSet 엔터티 집합은 EntityContainer 내부에 정의됩니다. 엔터티 컨테이너에 대한 자세한 내용은 엔터티 컨테이너(EDM)를 참조하십시오.

AssociationSet 요소는 EntityContainer 내부에서 형식이 CustomerOrderType이며 이름은 CustomerOrderSetAssociationSet으로도 정의됩니다.

CustomerOrderSet의 두 End 속성은 EntitySet 형식이며, 이 경우에서는 CustomerSetOrderSet입니다. Association 인스턴스는 CustomerOrderSet에 포함되며 CustomerSetCustomer 인스턴스를 OrderSetOrder 인스턴스와 연결합니다.

참고 항목

개념

Association(EDM)
엔터티 데이터 모델 관계
엔터티 데이터 모델 형식
엔터티 집합(EDM)
엔터티 컨테이너(EDM)
스키마(EDM)

기타 리소스

스키마 및 매핑 사양(Entity Framework)