CREATEREF (SQL de entidade)
Fabrica referências a uma entidade em um conjunto de entidades.
Sintaxe
CreateRef(entityset_identifier, row_typed_expression)
Argumentos
entityset_identifier
O identificador entityset, não um literal de cadeia de caracteres.
row_typed_expression
Uma expressão de tipo de linha que corresponde às propriedades de chave do tipo de entidade.
Observações
row_typed_expression
deve ser estruturalmente equivalente ao tipo de chave para a entidade. Ou seja, ele deve ter o mesmo número e tipos de campos na mesma ordem que as chaves de entidade.
No exemplo abaixo, Orders e BadOrders são conjuntos de entidades do tipo Order, e Id é assumido como a propriedade de chave única de Order. O exemplo ilustra como podemos produzir uma referência a uma entidade em BadOrders. Note que a referência pode estar pendurada. Ou seja, a referência pode não identificar realmente uma entidade específica. Nesses casos, uma DEREF
operação nessa referência retorna um null.
SELECT CreateRef(LOB.BadOrders, row(o.Id))
FROM LOB.Orders AS o
Exemplo
A consulta Entity SQL a seguir usa o operador 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 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
ExecuteStructuralTypeQuery
método:
SELECT VALUE Key(CreateRef(AdventureWorksEntities.Products,
row(p.ProductID)))
FROM AdventureWorksEntities.Products AS p