다음을 통해 공유


탐색 속성(EDM)

EDM(엔터티 데이터 모델)에서 탐색 속성은 연결의 End에서 엔터티를 찾는 데 사용되는 바로 가기 속성입니다. 연결에 대한 자세한 내용은 Association(EDM)을 참조하십시오.

속성에는 엔터티가 제공하도록 되어 있는 정보가 포함됩니다. 탐색 속성은 연결 간의 탐색 가능한 경로를 정의합니다. 예를 들어 CustomerOrder 엔터티 사이의 연결에서 Customer 엔터티는 Orders라는 NavigationProperty를 선언하여 특정 Customer 인스턴스와 연결되는 Order 인스턴스를 나타낼 수 있습니다. Customer 또는 Order 인스턴스에서 NavigationProperty를 통해 연결의 End에서 인스턴스를 찾을 수 있습니다.

EDM에서 컬렉션의 기능은 탐색 속성과 연결을 사용하여 구현됩니다. Customer 엔터티에서 Orders라는 NavigationProperty는 컬렉션처럼 작동합니다. 다음 스키마를 빌드하면 개체 모델에는 Orders 속성에 대한 Add 메서드가 포함됩니다. 이 메서드를 사용하여 Order 엔터티의 새 인스턴스를 추가합니다. Orders NavigationProperty는 .NET Framework 컬렉션처럼 루프에서 열거할 수 있습니다.

아래의 스키마 예제에서는 CustomerOrder 엔터티에 대한 탐색 속성을 만드는 방법을 보여 줍니다.

<EntityType Name="Customer" >
    <Key>
      <PropertyRef Name=" CustomerId " />
    </Key>
    <Property Name="CustomerId" Type="Guid" Nullable="false" />
    ...
    <NavigationProperty Name="Orders" Relationship=Namespace.CustomerOrderType"
          FromRole="Customer" ToRole="Orders"/>
</EntityType>

<EntityType Name="Order" Key="OrderId">
    ...
    <NavigationProperty Name="OrderedBy" Relationship="Namespace.Customer_Order"
          FromRole="Order" ToRole="Customer" />
</EntityType>

<Association Name="Customer_Order">
    <End Role="Customer" Type="Namespace.Customers" Multiplicity="1" />
    <End Role="Orders" Type="Namespace.Order" Multiplicity="0..*" />
</Association>
<!— Use a fully qualified name for the association in a Navigation Property.->

이 예제에서는 CustomerOrder에 대한 탐색 속성의 스키마 정의만 보여 줍니다. 연결 및 탐색 속성을 저장소에 매핑하는 방법에 대한 자세한 내용은 연결 구현(EDM)을 참조하십시오.

참고 항목

개념

쿼리 결과 셰이핑(Entity Framework)
Association(EDM)
스키마(EDM)
NavigationProperty 요소(EntityType CSDL)

기타 리소스

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