CREATEREF (Entity SQL)
Vytvoří odkazy na entitu v sadě entit.
Syntaxe
CreateRef(entityset_identifier, row_typed_expression)
Argumenty
entityset_identifier
Identifikátor sady entit, nikoli řetězcový literál.
row_typed_expression
Výraz typu řádek, který odpovídá klíčovým vlastnostem typu entity.
Poznámky
row_typed_expression
musí být strukturálně ekvivalentní typu klíče pro entitu. To znamená, že musí mít stejný počet a typy polí ve stejném pořadí jako klíče entity.
V následujícím příkladu jsou Objednávky a BadOrders jak entity sady typu Order, tak ID se předpokládá jako jedna klíčová vlastnost Order. Příklad ukazuje, jak můžeme vytvořit odkaz na entitu v BadOrders. Všimněte si, že odkaz může být prokláněný. To znamená, že odkaz nemusí ve skutečnosti identifikovat konkrétní entitu. V takových případech DEREF
vrátí operace s tímto odkazem hodnotu null.
SELECT CreateRef(LOB.BadOrders, row(o.Id))
FROM LOB.Orders AS o
Příklad
Následující dotaz Entity SQL používá operátor CREATEREF k vytvoření odkazů na entitu v sadě entit. Dotaz je založený na prodejním modelu AdventureWorks. Chcete-li tento dotaz zkompilovat a spustit, postupujte takto:
Postupujte podle pokynů v části Postupy: Provedení dotazu, který vrací výsledky typu StructuralType.
Jako argument metody
ExecuteStructuralTypeQuery
předejte následující dotaz:
SELECT VALUE Key(CreateRef(AdventureWorksEntities.Products,
row(p.ProductID)))
FROM AdventureWorksEntities.Products AS p