Ikhtisar LINQ to DataSet
DataSet adalah salah satu komponen ADO.NET yang lebih banyak digunakan. Ini adalah elemen kunci dari model pemrograman terputus yang menjadi dasar ADO.NET, dan memungkinkan Anda untuk secara eksplisit menyimpan data dari sumber data yang berbeda. Untuk tingkat presentasi, DataSet terintegrasi erat dengan kontrol GUI untuk pengikatan data. Untuk tingkat menengah, ini menyediakan cache yang mempertahankan bentuk hubungan data, dan menyertakan layanan navigasi hierarki dan kueri sederhana yang cepat. Teknik umum yang digunakan untuk menurunkan jumlah permintaan pada database adalah menggunakan DataSet untuk melakukan penembolokan di tingkat menengah. Misalnya, pertimbangkan aplikasi Web ASP.NET berbasis data. Sering kali, sebagian besar data aplikasi tidak sering berubah dan umum di seluruh sesi atau pengguna. Data ini dapat disimpan dalam memori di server Web, yang mengurangi jumlah permintaan terhadap database dan mempercepat interaksi pengguna. Aspek berguna lainnya dari DataSet adalah ini memungkinkan aplikasi membawa subset data dari satu atau beberapa sumber data ke dalam ruang aplikasi. Aplikasi kemudian dapat memanipulasi data dalam memori, sambil mempertahankan bentuk hubungannya.
Terlepas dari keunggulannya, DataSet memiliki kemampuan kueri yang terbatas. Metode Select dapat digunakan untuk memfilter dan menyortir, dan metode GetChildRows dan GetParentRow dapat digunakan untuk navigasi hierarki. Namun, untuk hal yang lebih kompleks, pengembang harus menulis kueri kustom. Hal ini dapat mengakibatkan aplikasi yang berperforma buruk dan sulit untuk dipelihara.
LINQ to DataSet mempermudah dan mempercepat kueri data yang di-cache di objek DataSet. Kueri ini diekspresikan dalam bahasa komputer itu sendiri, bukan sebagai harfiah string yang disematkan dalam kode aplikasi. Ini berarti bahwa pengembang tidak perlu mempelajari bahasa kueri yang terpisah. Selain itu, LINQ to DataSet memungkinkan pengembang Visual Studio untuk bekerja dengan lebih produktif, karena Visual Studio IDE menyediakan pemeriksaan sintaks waktu kompilasi, pengetikan statis, dan dukungan IntelliSense untuk LINQ. LINQ to DataSet juga dapat digunakan untuk mengkueri data yang telah dikonsolidasikan dari satu atau lebih sumber data. Hal ini memungkinkan banyak skenario yang memerlukan fleksibilitas dalam cara data direpresentasikan dan ditangani. Khususnya, aplikasi pelaporan, analisis, dan inteligensi bisnis generik memerlukan metode manipulasi ini.
Mengkueri DataSets Menggunakan LINQ to DataSet
Sebelum Anda dapat mulai mengkueri objek DataSet menggunakan LINQ to DataSet, Anda harus mengisi DataSet. Ada beberapa cara untuk memuat data ke dalam DataSet, seperti menggunakan kelas DataAdapter atau LINQ to SQL. Setelah data dimuat ke dalam objek DataSet, Anda dapat mulai mengkuerinya. Merumuskan kueri menggunakan LINQ to DataSet mirip dengan menggunakan Kueri Terintegrasi Bahasa (LINQ) terhadap sumber data berkemampuan LINQ lainnya. Kueri LINQ dapat dilakukan terhadap satu tabel dalam DataSet atau terhadap lebih dari satu tabel menggunakan operator kueri standar Join dan GroupJoin.
Kueri LINQ didukung terhadap objek DataSet yang diketik dan tidak diketik. Jika skema DataSet diketahui pada waktu desain aplikasi, DataSet yang diketik disarankan. Dalam DataSet yang diketik, tabel dan baris memiliki anggota yang diketik untuk setiap kolom, yang membuat kueri lebih sederhana dan lebih mudah dibaca.
Selain operator kueri standar yang diterapkan di System.Core.dll, LINQ ke DataSet menambahkan beberapa ekstensi khusus DataSet yang mempermudah kueri pada sekumpulan objek DataRow. Ekstensi khusus DataSet ini mencakup operator untuk membandingkan urutan baris, serta metode yang menyediakan akses ke nilai kolom dari DataRow.
Aplikasi N-tingkat dan LINQ to DataSet
Aplikasi data tingkat-n adalah aplikasi data-sentris yang dipisahkan menjadi beberapa lapisan (atau tingkatan) logis. Aplikasi N-tingkat umumnya mencakup tingkat presentasi, tingkat menengah, dan tingkat data. Memisahkan komponen aplikasi ke dalam tingkatan terpisah akan meningkatkan pemeliharaan dan skalabilitas aplikasi. Untuk informasi selengkapnya tentang aplikasi data N-tingkat, lihat Bekerja dengan himpunan data dalam aplikasi n-tingkat.
Dalam aplikasi N-tingkat, DataSet sering digunakan di tingkat menengah guna men-cache informasi untuk aplikasi Web. Fungsi kueri LINQ to DataSet diimplementasikan melalui metode ekstensi dan memperluas DataSet ADO.NET 2.0 yang ada.