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.
Memperlakukan objek dari jenis dasar tertentu sebagai objek dari jenis turunan yang ditentukan.
Sintaksis
TREAT ( expression as type)
Argumen
expression Ekspresi kueri valid apa pun yang mengembalikan entitas.
Nota
Jenis ekspresi yang ditentukan harus berupa subjenis tipe data yang ditentukan, atau tipe data harus berupa subjenis ekspresi.
type Jenis entitas. Jenis harus memenuhi syarat oleh namespace.
Nota
Ekspresi yang ditentukan harus merupakan subjenis dari tipe data yang ditentukan, atau tipe data harus merupakan subjenis ekspresi.
Mengembalikan Nilai
Nilai jenis data yang ditentukan.
Komentar
TREAT digunakan untuk melakukan upcasting antara kelas terkait. Misalnya, jika berasal dari Person dan p berjenis Person, TREAT(p AS NamespaceName.Employee) memperkirakan instans generik Person ke Employee; yaitu, memungkinkan Anda untuk memperlakukan p sebagai Employee.Employee
TREAT digunakan dalam skenario pewarisan di mana Anda bisa melakukan kueri seperti berikut ini:
SELECT TREAT(p AS NamespaceName.Employee)
FROM ContainerName.Person AS p
WHERE p IS OF (NamespaceName.Employee)
Kueri ini memperkirakan Person entitas ke Employee jenis . Jika nilai p tidak benar-benar berjenis Employee, ekspresi menghasilkan nilai null.
Nota
Ekspresi Employee yang ditentukan harus merupakan subjenis dari tipe Persondata yang ditentukan , atau jenis data harus merupakan subjenis ekspresi. Jika tidak, ekspresi akan mengakibatkan kesalahan waktu kompilasi.
Tabel berikut menunjukkan perilaku memperlakukan beberapa pola umum dan beberapa pola yang kurang umum. Semua pengecualian dilemparkan dari sisi klien sebelum penyedia dipanggil:
| Pola | Perilaku |
|---|---|
TREAT (null AS EntityType) |
Menampilkan DbNull. |
TREAT (null AS ComplexType) |
Melempar pengecualian. |
TREAT (null AS RowType) |
Melempar pengecualian/ |
TREAT (EntityType AS EntityType) |
Mengembalikan EntityType atau null. |
TREAT (ComplexType AS ComplexType) |
Melempar pengecualian. |
TREAT (RowType AS RowType) |
Melempar pengecualian. |
Contoh
Kueri Entity SQL berikut menggunakan operator TREAT untuk mengonversi objek dari jenis Kursus ke kumpulan objek jenis OnsiteCourse. Kueri didasarkan pada Model Sekolah.
SELECT VALUE TREAT (course AS SchoolModel.OnsiteCourse)
FROM SchoolEntities.Courses AS course
WHERE course IS OF( SchoolModel.OnsiteCourse)