LINQ ke SQL bergabung adalah kuat untuk mendapatkan data dari pelbagai jadual. Walau bagaimanapun, secara langsung mengembalikan jenis tanpa nama dari gabungan ini boleh menyebabkan ketidakcocokan jenis, terutamanya apabila bekerja dengan kaedah bukan generik.
katakan kita mempunyai dua jadual: "anjing" (nama, umur, baka) dan "baka" (breedid, name). Sertai langsung untuk mendapatkan semua anjing berfungsi dengan baik jika anda mengembalikan
.
IQueryable<Dog>
Masalah timbul apabila anda cuba memasukkan
. Ini sering menyebabkan kesilapan yang berkaitan dengan jenis. BreedName
select
Daripada membuat jenis tersuai baru untuk setiap pertanyaan, pendekatan yang lebih banyak diselenggarakan adalah untuk menentukan kelas yang boleh diguna semula untuk mewakili data gabungan. Untuk contoh ini, kami akan membuat kelas
yang mengandungi objek dan rentetan DogWithBreed
. Dog
BreedName
Dengan mengubahsuai pertanyaan anda untuk menggunakan kelas
, anda mencapai penyelesaian jenis selamat dan berskala. Ini mengelakkan komplikasi jenis tanpa nama sambil mengekalkan fleksibiliti. Hasilnya adalah DogWithBreed
yang sangat ditaip, menjadikan kod anda lebih bersih dan lebih mudah untuk dikekalkan. select
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengembalikan Hasil Jenis Tanpa Nama daripada LINQ ke SQL Joins Tanpa Jenis Tidak Padan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!