Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Definuje funkci v oboru příkazu dotazu Entity SQL.
Syntaxe
FUNCTION function-name
( [ { parameter_name <type_definition>
[ ,...n ]
]
) AS ( function_expression )
<type_definition>::=
{ data_type | COLLECTION ( <type_definition> )
| REF ( data_type )
| ROW ( row_expression )
}
Argumenty
function-name
Název funkce.
parameter-name
Název parametru ve funkci.
function_expression
Platný výraz ENTITY SQL, který je funkcí. Příkaz ve funkci může pracovat s parameter_name parametry předanými funkci.
data_type
Název podporovaného typu
COLLECTION ( <type_definition> )
Výraz, který vrací kolekci podporovaných typů, řádků nebo odkazů.
ODKAZ (data_type)
Výraz, který vrací odkaz na typ entity.
ŘÁDEK (row_expression)
Výraz, který vrací anonymní záznamy se strukturálně zadanými záznamy z jedné nebo více hodnot. Další informace najdete v tématu ŘÁDEK.
Poznámky
Více funkcí se stejným názvem lze deklarovat jako vložené, pokud se podpisy funkce liší. Další informace naleznete v tématu Řešení přetížení funkce.
Vloženou funkci lze volat v příkazu Entity SQL až po jeho definování v daném příkazu. Vloženou funkci však lze volat uvnitř jiné vložené funkce buď před nebo po jeho definování. V následujícím příkladu funkce A volá funkci B před definováním funkce B:
Function A() as ('A calls B. ' + B())
Function B() as ('B was called.')
A()
Další informace naleznete v tématu Postupy: Volání funkce User-Defined.
Funkce lze deklarovat také v samotném modelu. Funkce deklarované v modelu se spouští stejným způsobem jako funkce deklarované v příkazu. Další informace najdete v tématu User-Defined Functions.
Příklad 1
Následující příkaz Entity SQL definuje funkci Products , která přebírá celočíselnou hodnotu k filtrování vrácených produktů.
USING Microsoft.Samples.Entity;
FUNCTION Products(listPrice Int32) AS
(
SELECT VALUE p FROM AdventureWorksEntities.Products AS p
WHERE p.ListPrice >= listPrice
)
select p FROM Products(@price) AS p
Příklad 2
Následující příkaz Entity SQL definuje funkci StringReturnsCollection , která přebírá kolekci řetězců k filtrování vrácených kontaktů.
USING Microsoft.Samples.Entity;
FUNCTION GetSpecificContacts(Ids Collection(Int32)) AS
(
SELECT VALUE id FROM Ids AS id WHERE id < @price
)
GetSpecificContacts(SELECT VALUE c.ContactID
FROM AdventureWorksEntities.Contacts AS c)