Kueri dalam LINQ ke Entitas

Kueri adalah ekspresi yang mengambil data dari sumber data. Kueri biasanya diekspresikan dalam bahasa kueri khusus, seperti SQL untuk database hubungan dan XQuery untuk XML. Oleh karena itu, pengembang harus mempelajari bahasa kueri baru untuk setiap jenis sumber data atau format data yang mereka kueri. Language-Integrated Query (LINQ) menawarkan model yang lebih sederhana dan konsisten untuk bekerja dengan data di berbagai jenis sumber dan format data. Dalam kueri LINQ, Anda selalu bekerja dengan objek pemrograman.

Operasi kueri LINQ terdiri dari tiga tindakan: mendapatkan sumber data atau sumber, membuat kueri, serta menjalankan kueri.

Sumber data yang mengimplementasikan antarmuka generik IEnumerable<T> atau antarmuka generik IQueryable<T> dapat dikueri melalui LINQ. Instans dari kelas generik ObjectQuery<T>, yang mengimplementasikan antarmuka generik IQueryable<T>, berfungsi sebagai sumber data untuk kueri LINQ ke Entitas. Kelas generik ObjectQuery<T> mewakili kueri yang mengembalikan kumpulan entitas nol atau lebih yang berjenis. Anda juga dapat membiarkan pengkompilasi menyimpulkan jenis entitas dengan menggunakan kata kunci C# var (Dim in Visual Basic).

Dalam kueri, Anda menentukan persis informasi yang ingin Anda ambil dari sumber data. Kueri juga dapat menentukan bagaimana informasi tersebut harus diurutkan, dikelompokkan, dan dibentuk sebelum dikembalikan. Di LINQ, kueri disimpan dalam variabel. Jika kueri mengembalikan urutan nilai, variabel kueri itu sendiri harus berupa tipe yang dapat dikueri. Variabel kueri ini tidak mengambil tindakan dan tidak mengembalikan data; hanya menyimpan informasi kueri. Setelah membuat kueri, Anda harus menjalankan kueri tersebut untuk mengambil data apa pun.

Sintaks Kueri

Kueri LINQ to Entity dapat disusun dalam dua sintaks yang berbeda: sintaks ekspresi kueri dan sintaks kueri berbasis metode. Sintaks ekspresi kueri adalah hal baru di C# 3.0 dan Visual Basic 9.0, dan terdiri dari satu set klausul yang ditulis dalam sintaks deklaratif yang mirip dengan Transact-SQL atau XQuery. Namun, runtime bahasa umum .NET Framework (CLR) tidak bisa membaca sintaks ekspresi kueri itu sendiri. Oleh karena itu, pada waktu kompilasi, ekspresi kueri diterjemahkan ke sesuatu yang dipahami CLR: panggilan metode. Metode ini disebut sebagai operator kueri standar. Sebagai pengembang, Anda memiliki opsi untuk memanggilnya secara langsung dengan menggunakan sintaks metode, daripada menggunakan sintaks kueri. Untuk informasi selengkapnya, lihat Sintaksis kueri dan sintaks metode di LINQ.

Sintaks Ekspresi Kueri

Ekspresi kueri adalah sintaks kueri deklaratif. Sintaks ini memungkinkan pengembang untuk menulis kueri dalam bahasa tingkat tinggi yang diformat mirip dengan Transact-SQL. Dengan menggunakan sintaks ekspresi kueri, Anda bisa melakukan operasi pemfilteran, pemesanan, dan pengelompokan yang kompleks pada sumber data dengan kode minimal. Untuk informasi selengkapnya, lihat Operasi Kueri Dasar (Visual Basic). Untuk contoh yang menunjukkan cara menggunakan sintaks ekspresi kueri, lihat topik berikut ini:

Sintaks Kueri Berbasis Metode

Cara lain untuk menyusun kueri LINQ ke Entitas adalah menggunakan kueri berbasis metode. Sintaks kueri berbasis metode adalah urutan panggilan metode langsung ke metode operator LINQ, meneruskan ekspresi lambda sebagai parameter. Untuk informasi selengkapnya, lihat Ekspresi Lambda. Untuk contoh yang menunjukkan cara menggunakan sintaks berbasis metode, lihat topik berikut ini:

Lihat juga