FÜGGVÉNY (Entity SQL)
Egy entitás SQL-lekérdezési parancs hatókörében definiál egy függvényt.
Syntax
FUNCTION function-name
( [ { parameter_name <type_definition>
[ ,...n ]
]
) AS ( function_expression )
<type_definition>::=
{ data_type | COLLECTION ( <type_definition> )
| REF ( data_type )
| ROW ( row_expression )
}
Argumentumok
function-name
A függvény neve.
parameter-name
Egy paraméter neve a függvényben.
function_expression
Érvényes entity SQL-kifejezés, amely a függvény. A függvény parancsa képes a függvénynek átadott paraméterekre parameter_name
reagálni.
data_type
Támogatott típus neve.
GYŰJTEMÉNY ( <type_definition>
)
Olyan kifejezés, amely támogatott típusok, sorok vagy hivatkozások gyűjteményét adja vissza.
HIV (data_type
)
Olyan kifejezés, amely egy entitástípusra mutató hivatkozást ad vissza.
SOR (row_expression
)
Egy kifejezés, amely névtelen, szerkezetileg beírt rekordokat ad vissza egy vagy több értékből. További információ: SOR.
Megjegyzések
Több azonos nevű függvény is deklarálható beágyazottan, feltéve, hogy a függvény-aláírások eltérőek. További információkért lásd a függvény túlterhelésének feloldását ismertető témakört.
Beágyazott függvények csak azután hívhatók meg egy Entity SQL-parancsban, hogy az adott parancsban definiálva lett. A beágyazott függvények azonban meghívhatók egy másik beágyazott függvényben a hívott függvény definiálása előtt vagy után. Az alábbi példában az A függvény a B függvényt hívja meg a B függvény definiálása előtt:
Function A() as ('A calls B. ' + B())
Function B() as ('B was called.')
A()
További információ : Útmutató: Felhasználó által definiált függvény meghívása.
A függvények a modellben is deklarálhatók. A modellben deklarált függvények végrehajtása ugyanúgy történik, mint a parancsban beágyazottan deklarált függvények. További információ: Felhasználó által definiált függvények.
1. példa
Az alábbi Entity SQL-parancs egy függvényt Products
határoz meg, amely egy egész számot vesz igénybe a visszaadott termékek szűréséhez.
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
2. példa
Az alábbi Entity SQL-parancs egy olyan függvényt StringReturnsCollection
határoz meg, amely sztringek gyűjteményét veszi igénybe a visszaadott névjegyek szűréséhez.
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)