OFTYPE (Entity SQL)
Mengembalikan koleksi objek dari ekspresi kueri yang merupakan jenis tertentu.
Sintaks
OFTYPE ( expression, [ONLY] test_type )
Argumen
expression
Ekspresi kueri valid apa pun yang mengembalikan koleksi objek.
test_type
Jenis untuk menguji setiap objek yang dikembalikan oleh expression
. Jenis harus memenuhi syarat oleh namespace layanan.
Tampilkan Nilai
Koleksi objek yang berjenis test_type
, atau berjenis dasar atau berjenis turunan dari test_type
. Jika ONLY ditentukan, hanya instans test_type
atau koleksi kosong yang akan dikembalikan.
Keterangan
Ekspresi OFTYPE
menentukan ekspresi jenis yang dikeluarkan untuk melakukan pengujian jenis terhadap setiap elemen koleksi. Ekspresi OFTYPE
menghasilkan koleksi baru dari jenis yang ditentukan yang hanya berisi elemen-elemen yang setara dengan jenis tersebut atau subjenisnya.
Ekspresi OFTYPE
adalah singkatan dari ekspresi kueri berikut:
select value treat(t as T) from ts as t where t is of (T)
Mengingat bahwa Manajer adalah subjenis dari Karyawan, ekspresi berikut menghasilkan koleksi hanya manajer dari koleksi karyawan:
OfType(employees, NamespaceName.Manager)
Dimungkinkan juga untuk menampilkan koleksi menggunakan filter jenis:
OfType(executives, NamespaceName.Manager)
Karena semua eksekutif adalah manajer, koleksi yang dihasilkan masih berisi semua eksekutif asli, meskipun koleksi kini berjenis sebagai koleksi manajer.
Tabel berikut menunjukkan perilaku operator OFTYPE
atas beberapa pola. Semua pengecualian ditampilkan dari sisi klien sebelum penyedia dipanggil:
Pola | Perilaku |
---|---|
OFTYPE(Collection(EntityType), EntityType) | Collection(EntityType) |
OFTYPE(Collection(ComplexType), ComplexType) | Melemparkan |
OFTYPE(Collection(RowType), RowType) | Melemparkan |
Contoh
Kueri SQL Entitas berikut menggunakan operator OFTYPE untuk mengembalikan koleksi objek OnsiteCourse dari koleksi objek Kursus. Kueri didasarkan pada Model Sekolah.
SELECT onsiteCourse.Location FROM
OFTYPE(SchoolEntities.Courses, SchoolModel.OnsiteCourse)
AS onsiteCourse