Linq ke SQL boleh mengembalikan jenis tanpa nama sebagai hasilnya?
di linq hingga sql, bagaimana untuk menanyakan pelbagai jadual dan menggabungkan hasilnya dengan jenis tanpa nama? Percubaan awal jenis tanpa nama
Contoh berikut Gunakan dua jadual
dan , cuba gunakan jenis tanpa nama untuk mengambil semua anjing dan yang sepadan :
Dogs
tetapi ini akan gagal, kerana pengkompil mengharapkan untuk kembali Breeds
bukan jenis tanpa nama. BreedName
<code class="language-csharp">public IQueryable<dog> GetDogsWithBreedNames() { var db = new DogDataContext(ConnectString); var result = from d in db.Dogs join b in db.Breeds on d.BreedId equals b.BreedId select new { Name = d.Name, BreedName = b.BreedName }; return result; }</dog></code>
Dogs
Penyelesaian adalah untuk membuat jenis tersuai untuk menunjukkan anjing dengan nama pelbagai:
Gunakan jenis tersuai
Gunakan jenis tersuai ini, anda boleh mengubah suai pertanyaan untuk kembali ke hasil yang diperlukan:
<code class="language-csharp">public class DogWithBreed { public Dog Dog { get; set; } public string BreedName { get; set; } }</code>
Kaedah ini menyediakan jenis kaedah yang selamat dan boleh diguna semula, yang boleh menggunakan hasil kombinasi jenis tersuai dari pelbagai jadual. Ini mengelakkan jenis jenis yang dihadapi apabila menggunakan jenis tanpa nama.
Atas ialah kandungan terperinci Bolehkah LINQ ke Pertanyaan SQL Mengembalikan Jenis Tanpa Nama sebagai Hasil?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!