CRIARREF (Entity SQL)
Fabrica referências a uma entidade em um entityset.
Sintaxe
CreateRef(entityset_identifier, row_typed_expression)
Argumentos
entityset_identifier
O identificador de entityset, não um literal de cadeia de caracteres.
row_typed_expression
Uma expressão linha tipada que corresponde a propriedades chave do tipo de objeto.
Comentários
row_typed_expression
deve ser estrutural equivalente ao tipo principal para a entidade. Isto é, deve ter o mesmo número e tipos de campos na mesma ordem como as chaves de entidade.
No exemplo abaixo, os pedidos e BadOrders são ambos os entitysets ordem de tipo, e é a identificação assumida para ser a única propriedade de chave pedido. O exemplo ilustra como nós podemos gerar uma referência a uma entidade em BadOrders. Observe que a referência pode oscilar. Isto é, a referência não pode realmente identificar uma entidade específica. Nesses casos, uma operação de DEREF
na referência retorna um zero.
SELECT CreateRef(LOB.BadOrders, row(o.Id))
FROM LOB.Orders AS o
Exemplo
A seguinte consulta SQL Entity usa o operador de CREATEREF para fabricar referências a uma entidade em um conjunto de entidades. A consulta é baseada no modelo de vendas AdventureWorks. Para compilar e executar essa consulta, siga estas etapas:
Siga o procedimento em Como executar uma consulta que retorna resultados de StructuralType.
Passe a consulta a seguir como um argumento para o método
ExecuteStructuralTypeQuery
:
SELECT VALUE Key(CreateRef(AdventureWorksEntities.Products,
row(p.ProductID)))
FROM AdventureWorksEntities.Products AS p