Bagikan melalui


FUNCTION (Entity SQL)

Mendefinisikan fungsi dalam cakupan perintah kueri Entity SQL.

Sintaks

FUNCTION function-name  
( [ { parameter_name <type_definition>
        [ ,...n ]  
  ]  
) AS ( function_expression )
  
<type_definition>::=  
    { data_type | COLLECTION ( <type_definition> )
                | REF ( data_type )
                | ROW ( row_expression )
        }

Argumen

function-name
Nama fungsi.

parameter-name
Nama parameter dalam fungsi.

function_expression
Ekspresi Entity SQL yang valid yang merupakan fungsi. Perintah dalam fungsi dapat bertindak atas parameter parameter_name yang diteruskan ke fungsi.

data_type
Nama jenis yang didukung.

COLLECTION ( <type_definition> )
Ekspresi yang mengembalikan kumpulan jenis, baris, atau referensi yang didukung.

REF (data_type)
Ekspresi yang mengembalikan referensi ke jenis entitas.

ROW (row_expression)
Ekspresi yang mengembalikan rekaman berjenis secara struktural yang anonim dari satu atau beberapa nilai. Untuk mengetahui informasi selengkapnya, lihat ROW.

Keterangan

Beberapa fungsi dengan nama yang sama dapat dinyatakan sebaris, selama tanda tangan fungsinya berbeda. Untuk mengetahui informasi selengkapnya, lihat Resolusi Kelebihan Beban Fungsi.

Fungsi sebaris dapat dipanggil dalam perintah Entity SQL hanya setelah didefinisikan dalam perintah tersebut. Namun, fungsi sebaris dapat dipanggil di dalam fungsi sebaris lain baik sebelum atau setelah fungsi yang dipanggil telah didefinisikan. Dalam contoh berikut, fungsi A memanggil fungsi B sebelum fungsi B didefinisikan:

Function A() as ('A calls B. ' + B())

Function B() as ('B was called.')

A()

Untuk mengetahui informasi selengkapnya, lihat Petunjuk: Memanggil Fungsi yang Ditentukan Pengguna.

Fungsi juga dapat dideklarasikan dalam model itu sendiri. Fungsi yang dideklarasikan dalam model dijalankan dengan cara yang sama seperti fungsi yang dideklarasikan sebaris dalam perintah. Untuk mengetahui informasi selengkapnya, lihat Fungsi yang Ditentukan Pengguna.

Contoh 1

Perintah Entity SQL berikut menentukan fungsi Products yang mengambil nilai bilangan bulat untuk memfilter produk yang dikembalikan.

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

Contoh 2

Perintah Entity SQL berikut menentukan fungsi StringReturnsCollection yang mengambil kumpulan string untuk memfilter kontak yang dikembalikan.

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)

Lihat juga