Skip to main content

Apa itu kueri terintegrasi bahasa?

Kueri Terpadu Bahasa (LINQ) memberikan kemampuan untuk mengintegrasikan sintaks kueri deklaratif dengan mulus ke dalam bahasa yang imperatif, terutama C# dan VB.NET.Pengembangan LINQ memecahkan masalah pengembang yang bekerja di lingkungan yang berorientasi objek yang dihadapi saat melakukan kueri.Itu diperkenalkan sebagai bagian dari Microsoft .NET Framework Versi 3.5 pada November 2007, dan di Visual Studio Codename Orcas.

Sebelum pembuatan kueri terintegrasi bahasa, bahasa .NET tidak memiliki cara asli untuk menanyakan database relasional atau dokumen XML.Pengembang yang menulis dalam bahasa -bahasa ini harus menyematkan SQL atau XQuery masing -masing sebagai string, dan memetakan secara manual yang menghasilkan data ke objek .NET.String dan pemetaan kueri tertanam tidak dapat divalidasi oleh kompiler .NET, yang memungkinkan kesalahan potensial ditemukan pada waktu berjalan.

Masalah lain yang dihadapi pengembang sebelum kueri yang terintegrasi bahasa adalah bahwa bahasa .NET hanya memiliki sintaks yang berorientasi keberatan untuk koleksi kueri.Objek bersih.Biasanya, pengembang akan mengulangi seluruh koleksi sumber, membangun koleksi hasil baru berdasarkan kriteria pencarian.Pengembang juga dapat mengubah data sambil membangun koleksi hasil.Pendekatan ini rumit;Kueri pilih sederhana yang ditulis dalam C# atau VB akan membutuhkan setidaknya lima baris kode, sedangkan kueri yang sama akan membutuhkan satu baris kode dalam bahasa kueri.

Tantangan permintaan dalam lingkungan yang berorientasi objek memberi Microsoft dorongan untuk dorongan untuk doronganbuat linq.LINQ menyediakan sintaks kueri yang mengingatkan pada SQL untuk digunakan in-line dengan C# atau VB, lengkap dengan pemeriksaan tipe statis.Saat menanyakan koleksi .NET, alih -alih menggunakan loop bersarang, pengembang dapat menggunakan sintaks LINQ untuk memilih item dan mengubah data.Di antara keunggulan lainnya, ini menghasilkan lebih sedikit baris kode dibandingkan dengan sintaks yang berorientasi objek murni.

Saat mengakses sumber data eksternal, LINQ, dan komponen pendukung menghapus kebutuhan untuk bahasa kueri tertanam dan pemetaan data dalam bahasa .NET itu sendiri.Untuk melakukan pemetaan data, LINQ tergantung pada komponen yang disebut penyedia LINQ.LINQ-to-Objects adalah penyedia stok yang memungkinkan LINQ untuk mengakses koleksi .NET.Demikian pula, ada penyedia untuk mengakses database relasional dan dokumen XML.Sebagian besar penyedia ini adalah komponen pihak ketiga yang tidak termasuk dalam .NET Framework.Terlepas dari penyedia yang digunakan, semua kueri menggunakan sintaks LINQ yang sama.

Antara sintaks kueri terintegrasi bahasa dan penyedia adalah perpustakaan operator kueri yang ditambahkan ke .NET Framework sebagai bagian dari fasilitas LINQ.Operator ini melakukan tugas -tugas seperti penyaringan, pemesanan, operasi teori yang ditetapkan, dan agregasi.Karena operator ini adalah bagian dari kerangka kerja.