Bagikan melalui


TREAT (Entity SQL)

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)

Lihat juga