Bagikan melalui


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

Lihat juga