Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Перемещается по связи, установленной между сущностями.
Синтаксис
navigate(instance-expression, [relationship-type], [to-end [, from-end] ])
Аргументы
instance-expression Экземпляр сущности.
relationship-type Имя типа связи из файла языка определения концептуальной схемы (CSDL). Это relationship-type имя является <пространством> имен.<имя> типа связи.
to Конец отношения.
from Начало отношения.
Возвращаемое значение
Если значение кратности конца равно 1, возвращаемое значение будет Ref<T>. Если значение кратности конца равно n, возвращаемое значение будет Collection<Ref<T>>.
Замечания
Связи — это конструкции первого класса в модели данных сущностей (EDM). Связи можно установить между двумя или несколькими типами сущностей, и пользователи могут перемещаться по связи между одной конечной (сущностью) в другую.
from и to являются условно необязательными, если в связи нет неоднозначности в разрешении имен.
ЗНАЧЕНИЕ 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 является клиентом и заказом являются relationshipto-end (клиент) и from-end (заказ) связи. Если OrderCustomer был связью n:1, результатом выражения навигации является Ref<Customer>.
Ниже приведена более простая форма этого выражения:
Select o.Id, navigate(o, OrderCustomer)
From LOB.Orders as o
Аналогичным образом в запросе следующей формы выражение навигации создаст порядок>> ссылок<коллекции<.
Select c.Id, navigate(c, OrderCustomer, Order, Customer)
From LOB.Customers as c
Выражение экземпляра должно быть типом сущности или ссылки.
Пример
Следующий запрос Entity SQL использует оператор NAVIGATE для перехода по связи между типами сущностей Address и SalesOrderHeader. Запрос основан на модели продаж AdventureWorks. Чтобы скомпилировать и запустить этот запрос, выполните следующие действия.
Выполните процедуру, описанную в разделе "Практическое руководство. Выполнение запроса, возвращающего результаты структурного типа".
Передайте следующий запрос в качестве аргумента в
ExecuteStructuralTypeQueryметод:
SELECT address.AddressID, (SELECT VALUE DEREF(soh)
FROM NAVIGATE(address,
AdventureWorksModel.FK_SalesOrderHeader_Address_BillToAddressID)
AS soh)
FROM AdventureWorksEntities.Addresses AS address