Men-debug LINQ ke Kueri Himpunan Data
Visual Studio mendukung penelusuran kesalahan kode LINQ ke DataSet. Namun, ada beberapa perbedaan antara men-debug kode LINQ ke DataSet dan kode yang dikelola non-LINQ ke DataSet. Sebagian besar fitur penelusuran kesalahan bekerja dengan pernyataan LINQ ke DataSet, termasuk melangkah, mengatur titik henti, dan melihat hasil yang ditampilkan di jendela debugger. Namun, eksekusi kueri yang ditangguhkan memiliki beberapa efek samping yang harus Anda pertimbangkan saat men-debug LINQ ke kode DataSet dan ada beberapa batasan untuk menggunakan Edit dan Lanjutkan. Topik ini membahas aspek penelusuran kesalahan yang unik untuk LINQ ke DataSet dibandingkan dengan kode yang dikelola non-LINQ ke DataSet.
Melihat Hasil
Anda dapat melihat hasil pernyataan LINQ ke DataSet dengan menggunakan DataTips, jendela Watch, dan kotak dialog QuickWatch. Dengan menggunakan jendela sumber, Anda dapat menjeda penunjuk pada kueri di jendela sumber dan DataTip akan muncul. Anda dapat menyalin variabel LINQ ke DataSet dan menempelkannya ke jendela Watch atau kotak dialog QuickWatch. Di LINQ ke DataSet, kueri tidak dievaluasi saat dibuat atau dideklarasikan, tetapi hanya saat kueri dijalankan. Ini disebut eksekusi yang ditangguhkan. Oleh karena itu, variabel kueri tidak memiliki nilai sampai dievaluasi. Untuk informasi selengkapnya, lihat Kueri di LINQ ke DataSet.
Debugger harus mengevaluasi kueri untuk menampilkan hasil kueri. Evaluasi implisit ini terjadi saat Anda melihat hasil kueri LINQ ke DataSet di debugger, dan memiliki beberapa efek yang harus Anda pertimbangkan. Setiap evaluasi kueri membutuhkan waktu. Memperluas node hasil membutuhkan waktu. Untuk beberapa kueri, evaluasi berulang dapat menyebabkan penalti performa yang nyata. Mengevaluasi kueri juga dapat menyebabkan efek samping, yaitu perubahan nilai data atau status program Anda. Tidak semua pertanyaan memiliki efek samping. Untuk menentukan apakah kueri dapat dievaluasi dengan aman tanpa efek samping, Anda harus memahami kode yang mengimplementasikan kueri. Untuk informasi selengkapnya, lihat Efek Samping dan Ekspresi.
Edit dan Lanjutkan
Edit dan Lanjutkan tidak mendukung perubahan pada kueri LINQ ke DataSet. Jika Anda menambahkan, menghapus, atau mengubah pernyataan LINQ ke DataSet selama sesi penelusuran kesalahan, kotak dialog akan muncul yang memberi tahu Anda bahwa perubahan tidak didukung oleh Edit dan Lanjutkan. Pada saat itu, Anda dapat membatalkan perubahan atau menghentikan sesi penelusuran kesalahan dan memulai kembali sesi baru dengan kode yang diedit.
Selain itu, Edit dan Lanjutkan tidak mendukung perubahan jenis atau nilai variabel yang digunakan dalam pernyataan LINQ ke DataSet. Sekali lagi, Anda dapat membatalkan perubahan atau menghentikan dan memulai kembali sesi penelusuran kesalahan.
Di Visual C# di Visual Studio, Anda tidak dapat menggunakan Edit dan Lanjutkan pada kode apa pun dalam metode yang berisi kueri LINQ ke DataSet.
Dalam Visual Basic di Visual Studio, Anda bisa menggunakan Edit dan Lanjutkan pada kode non-LINQ ke DataSet, bahkan dalam metode yang berisi kueri LINQ ke DataSet. Anda dapat menambahkan atau menghapus kode sebelum pernyataan LINQ ke DataSet, meskipun perubahan memengaruhi nomor baris kueri LINQ ke DataSet. Pengalaman penelusuran kesalahan Visual Basic Anda untuk kode non-LINQ ke DataSet tetap sama seperti sebelum LINQ ke DataSet diperkenalkan. Anda tidak dapat mengubah, menambah, atau menghapus kueri LINQ ke DataSet, kecuali jika Anda berhenti men-debug untuk menerapkan perubahan.