Bagikan melalui


TREAT (Entity SQL)

Memperlakukan objek jenis dasar tertentu sebagai objek jenis turunan yang ditentukan.

Sintaks

TREAT ( expression as type)

Argumen

expression Ekspresi kueri apa pun yang valid yang mengembalikan entitas.

Catatan

Jenis ekspresi yang ditentukan harus merupakan subjenis dari jenis data yang ditentukan, atau jenis data harus berupa subjenis dari jenis ekspresi.

type Jenis entitas. Jenis harus memenuhi syarat oleh namespace layanan.

Catatan

Ekspresi yang ditentukan harus berupa subjenis dari jenis data yang ditentukan, atau jenis data harus berupa subjenis dari ekspresi.

Tampilkan Nilai

Nilai dari jenis data yang ditentukan.

Keterangan

TREAT digunakan untuk melakukan upcasting antar kelas terkait. Misalnya, jika Employee berasal dari Person dan p berjenis Person, TREAT(p AS NamespaceName.Employee) menaikkan instans Person generik menjadi Employee; yaitu, memungkinkan Anda untuk memperlakukan p sebagai Employee.

TREAT digunakan dalam skenario pewarisan di mana Anda dapat melakukan kueri seperti berikut:

SELECT TREAT(p AS NamespaceName.Employee)
FROM ContainerName.Person AS p
WHERE p IS OF (NamespaceName.Employee)

Kueri ini meningkatkan entitas Person ke jenis Employee. Jika nilai p sebenarnya bukan berjenis Employee, ekspresi menghasilkan nilai null.

Catatan

Ekspresi yang ditentukan Employee harus berupa subjenis dari jenis data yang ditentukan Person, atau jenis data harus berupa subjenis dari ekspresi. Jika tidak, ekspresi akan menghasilkan kesalahan waktu kompilasi.

Tabel berikut menunjukkan perilaku memperlakukan beberapa pola yang khas 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) Memberikan pengecualian.
TREAT (null AS RowType) Memberikan pengecualian/
TREAT (EntityType AS EntityType) Mengembalikan EntityType atau null.
TREAT (ComplexType AS ComplexType) Memberikan pengecualian.
TREAT (RowType AS RowType) Memberikan pengecualian.

Contoh

Kueri Entity SQL berikut menggunakan operator TREAT untuk mengonversi objek berjenis Kursus menjadi kumpulan objek berjenis 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