Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Navega sobre a relação estabelecida entre entidades.
Sintaxe
navigate(instance-expression, [relationship-type], [to-end [, from-end] ])
Argumentos
instance-expression Uma instância de uma entidade.
relationship-type O nome do tipo da relação, do arquivo CSDL (linguagem de definição de esquema conceitual). O relationship-type é qualificado como <namespace>.<nome> do tipo de relação.
to O fim da relação.
from O início da relação.
Valor de retorno
Se a cardinalidade do final for 1, o valor retornado será Ref<T>. Se a cardinalidade do final for n, o valor retornado será Collection<Ref<T>>.
Observações
As relações são constructos de primeira classe no EDM (Modelo de Dados de Entidade). As relações podem ser estabelecidas entre dois ou mais tipos de entidade e os usuários podem navegar pela relação de uma extremidade (entidade) para outra.
from e to são condicionalmente opcionais quando não há ambiguidade na resolução de nomes dentro da relação.
NAVIGATE é válido no espaço de O e C.
A forma geral de um constructo de navegação é a seguinte:
navigate(instance-expression, relationship-type, [ to-end [, from-end ] ] )
Por exemplo:
Select o.Id, navigate(o, OrderCustomer, Customer, Order)
From LOB.Orders as o
Onde OrderCustomer é o relationshipcliente e o pedido são o to-end (cliente) e from-end (pedido) da relação. Se OrderCustomer era uma relação n:1, o tipo de resultado da expressão de navegação é Ref<Customer>.
A forma mais simples dessa expressão é a seguinte:
Select o.Id, navigate(o, OrderCustomer)
From LOB.Orders as o
Da mesma forma, em uma consulta do formulário a seguir, a expressão de navegação produziria uma ordem>> ref<de coleção<.
Select c.Id, navigate(c, OrderCustomer, Order, Customer)
From LOB.Customers as c
A expressão de instância deve ser um tipo de entidade/ref.
Exemplo
A consulta SQL de entidade a seguir usa o operador NAVIGATE para navegar sobre a relação estabelecida entre os tipos de entidade Address e SalesOrderHeader. A consulta é baseada no Modelo de Vendas adventureworks. Para compilar e executar essa consulta, siga estas etapas:
Siga o procedimento em How to: Execute a Query that Returns StructuralType Results.
Passe a consulta a seguir como um argumento para o
ExecuteStructuralTypeQuerymétodo:
SELECT address.AddressID, (SELECT VALUE DEREF(soh)
FROM NAVIGATE(address,
AdventureWorksModel.FK_SalesOrderHeader_Address_BillToAddressID)
AS soh)
FROM AdventureWorksEntities.Addresses AS address