Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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 relacionamento.
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 de retorno será Ref<T>. Se a cardinalidade do fim for n, o valor de retorno será Collection<Ref<T>>.
Observações
Os relacionamentos são construções de primeira classe no Modelo de Dados de Entidade (EDM). As relações podem ser estabelecidas entre dois ou mais tipos de entidade, e os usuários podem navegar sobre a 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 O e C.
A forma geral de uma construção de navegação é a seguinte:
navegar(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 relationship, e Cliente e Order são o to-end (cliente) e from-end (ordem) da relação. Se OrderCustomer era uma relação n:1, o tipo de resultado da expressão navigate é Ref<Customer>.
A forma mais simples desta expressão é a seguinte:
Select o.Id, navigate(o, OrderCustomer)
From LOB.Orders as o
Da mesma forma, em uma consulta do seguinte formulário, A expressão navigate produziria uma Ordem de Referência 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 Entity SQL a seguir usa o operador NAVIGATE para navegar pela relação estabelecida entre os tipos de entidade Address e SalesOrderHeader. A consulta é baseada no Modelo de Vendas AdventureWorks. Para compilar e executar esta consulta, siga estes passos:
Siga o procedimento em Como: Executar uma consulta que retorna resultados StructuralType.
Passe a seguinte consulta 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