Megosztás a következőn keresztül:


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)

Lásd még