Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Перемещается по связи, установленной между сущностями.
Синтаксис
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