Cara: Menjalankan Kueri Polimorfik
Topik ini menunjukkan cara menjalankan kueri SQL Entitas polimorfik menggunakan operator OFTYPE.
Untuk menjalankan kode dalam contoh ini
Tambahkan Model Sekolah ke proyek Anda dan konfigurasikan proyek Anda untuk menggunakan Entity Framework. Untuk informasi selengkapnya, lihat Cara: Menggunakan Wizard Model Data Entitas.
Di halaman kode untuk aplikasi Anda, tambahkan pernyataan
using
berikut (Imports
dalam Visual Basic):using System; using System.Collections.Generic; using System.Collections; using System.Data.Common; using System.Data; using System.IO; using System.Data.SqlClient; using System.Data.EntityClient; using System.Data.Metadata.Edm;
Imports System.Collections.Generic Imports System.Collections Imports System.Data.Common Imports System.Data Imports System.IO Imports System.Data.SqlClient Imports System.Data.EntityClient Imports System.Data.Metadata.Edm
Ubah model konseptual untuk memiliki pewarisan tabel-per-hierarki dengan mengikuti langkah-langkah di Panduan: Memetakan Warisan - Tabel-per-Hierarki.
Contoh
Contoh berikut menggunakan operator OFTYPE untuk mendapatkan dan menampilkan kumpulan hanya OnsiteCourses
dari kumpulan Courses
.
using (EntityConnection conn = new EntityConnection("name=SchoolEntities"))
{
conn.Open();
// Create a query that specifies to
// get a collection of only OnsiteCourses.
string esqlQuery = @"SELECT VAlUE onsiteCourse FROM
OFTYPE(SchoolEntities.Courses, SchoolModel.OnsiteCourse)
AS onsiteCourse";
using (EntityCommand cmd = new EntityCommand(esqlQuery, conn))
{
// Execute the command.
using (DbDataReader rdr = cmd.ExecuteReader(CommandBehavior.SequentialAccess))
{
// Start reading.
while (rdr.Read())
{
// Display OnsiteCourse's location.
Console.WriteLine("CourseID: {0} ", rdr["CourseID"]);
Console.WriteLine("Location: {0} ", rdr["Location"]);
}
}
}
}
Using conn As New EntityConnection("name=SchoolEntities")
conn.Open()
' Create a query that specifies to
' get a collection of only OnsiteCourses.
Dim esqlQuery As String = "SELECT VAlUE onsiteCourse FROM " & _
"OFTYPE(SchoolEntities.Courses, SchoolModel.OnsiteCourse) AS onsiteCourse"
Using cmd As New EntityCommand(esqlQuery, conn)
' Execute the command.
Using rdr As DbDataReader = cmd.ExecuteReader(CommandBehavior.SequentialAccess)
' Start reading.
While rdr.Read()
' Display OnsiteCourse's location.
Console.WriteLine("CourseID: {0} ", rdr("CourseID"))
Console.WriteLine("Location: {0} ", rdr("Location"))
End While
End Using
End Using
End Using