다음을 통해 공유


NAVIGATE (Entity SQL)

엔터티 사이에 설정된 관계를 탐색합니다.

구문

navigate(instance-expression, [relationship-type], [to-end [, from-end] ])

인수

instance-expression 엔터티의 인스턴스입니다.

relationship-type CSDL(개념 스키마 정의 언어) 파일에 지정된 관계의 형식 이름입니다. relationship-type은 <namespace>로 한정됩니다.<관계 형식 이름>.

to 관계의 끝 부분입니다.

from 관계의 시작 부분입니다.

Return Value

끝 End의 카디널리티가 1인 경우 반환 값은 Ref<T>이고, 끝 End의 카디널리티가 n인 경우 반환 값은 Collection<Ref<T>>입니다.

설명

관계는 EDM(Entity Data Model)에서 기본 클래스 구문입니다. 둘 이상의 엔터티 형식 간에 관계를 설정할 수 있으며 사용자는 한쪽(엔터티)에서 다른 쪽으로 관계를 탐색할 수 있습니다. fromto 는 관계 내의 이름 확인에 모호성이 없는 경우에 한해 조건부로 사용 가능합니다.

NAVIGATE는 O 및 C 공간에서 유효합니다.

탐색 구문의 일반적인 형태는 다음과 같습니다.

navigate(instance-expression, relationship-type, [ to-end [, from-end ] ] )

예시:

Select o.Id, navigate(o, OrderCustomer, Customer, Order)
From LOB.Orders as o

여기서 OrderCustomer는 relationship이고, Customer와 Order는 각각 관계의 to-end (고객)와 from-end (주문)입니다. OrderCustomer가 n:1 관계라면 탐색 식의 결과 형식은 Ref<Customer>입니다.

이 식이 좀 더 단순화된 형태는 다음과 같습니다.

Select o.Id, navigate(o, OrderCustomer)
From LOB.Orders as o

위와 비슷하게 다음 형태의 쿼리에서 탐색 식은 Collection<Ref<Order>>를 생성합니다.

Select c.Id, navigate(c, OrderCustomer, Order, Customer)
From LOB.Customers as c

인스턴스 식은 엔터티/참조 형식이어야 합니다.

예시

다음 Entity SQL 쿼리는 NAVIGATE 연산자를 사용하여 Address 및 SalesOrderHeader 엔터티 형식 사이에 설정된 관계를 탐색합니다. 쿼리는 AdventureWorks Sales 모델을 기반으로 합니다. 이 쿼리를 컴파일하고 실행하려면 다음 단계를 수행하세요.

  1. How to: Execute a Query that Returns StructuralType Results의 절차를 따릅니다.

  2. 다음 쿼리를 ExecuteStructuralTypeQuery 메서드에 인수로 전달합니다.

SELECT address.AddressID, (SELECT VALUE DEREF(soh) 
FROM NAVIGATE(address, 
    AdventureWorksModel.FK_SalesOrderHeader_Address_BillToAddressID) 
    AS soh)
FROM AdventureWorksEntities.Addresses AS address

참고 항목