Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Menentukan fungsi dalam cakupan perintah kueri SQL Entitas.
Sintaksis
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 SQL Entitas yang valid yang merupakan fungsi . Perintah dalam fungsi dapat bertindak berdasarkan parameter yang diteruskan parameter_name 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.
BARIS (row_expression)
Ekspresi yang mengembalikan rekaman anonim dan dititik secara struktural dari satu atau beberapa nilai. Untuk informasi selengkapnya, lihat ROW.
Komentar
Beberapa fungsi dengan nama yang sama dapat dinyatakan sebaris, selama tanda tangan fungsi berbeda. Untuk informasi selengkapnya, lihat Resolusi Kelebihan Beban Fungsi.
Fungsi sebaris dapat dipanggil dalam perintah Entity SQL hanya setelah ditentukan dalam perintah tersebut. Namun, fungsi sebaris dapat dipanggil di dalam fungsi sebaris lain baik sebelum atau sesudah fungsi yang disebut telah ditentukan. 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 informasi selengkapnya, lihat Cara: Memanggil Fungsi User-Defined.
Fungsi juga dapat dideklarasikan dalam model itu sendiri. Fungsi yang dideklarasikan dalam model dijalankan dengan cara yang sama seperti fungsi yang dinyatakan sebaris dalam perintah. Untuk informasi selengkapnya, lihat User-Defined Functions.
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)