Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menukar Pertanyaan SQL Kompleks dengan Gabungan Berbilang, Kiraan dan Gabungan Kiri ke LINQ?
Bagaimana untuk menukar pertanyaan SQL kompleks yang mengandungi pelbagai sambungan dan agregat ke dalam pertanyaan LINQ yang setara. Pertanyaan mengambil data dari tiga jadual (Table_C, Table_v, dan Table_R) dan melakukan operasi kedalaman lajur tertentu.
Tukar SQL ke LINQ Permintaan Pemahaman:
Politicon Query:
Tukar pertanyaan kepada pemboleh ubah perisytiharan berasingan. Dalam contoh ini, Table_R menggunakan jenis ID dan pengiraan tanpa nama.into
DefaultIfEmpty()
Distinct()
dalam versi ekspresi lambda telah menambah
pengendali keadaan kosong untuk memproses<code class="language-csharp">var subrq = from r in Table_R group r by r.Id into rg select new { Id = rg.Key, cnt = rg.Count() }; var ansq = (from c in Table_C join v in Table_V on c.Id equals v.Id join r in subrq on c.Id equals r.Id into rj from r in rj.DefaultIfEmpty() where c.IdUser == "1234" group new { c, v, r } by new { c.Id, c.Title, r.cnt } into cvrg select new { cvrg.Key.Title, Nb_V2 = cvrg.Count(), Nb_V1 = cvrg.Select(cvr => cvr.v.IdUser).Distinct().Count(), Nb_R = (int?)cvrg.Key.cnt }).Distinct();</code>mungkin null, mengelakkan keabnormalan NullReferenceException. Kedua -dua kaedah boleh mencapai fungsi yang sama, dan kaedah yang dipilih bergantung kepada keutamaan peribadi.
Atas ialah kandungan terperinci Bagaimana untuk Menukar Pertanyaan SQL Kompleks dengan Gabungan Berbilang, Kiraan dan Gabungan Kiri ke LINQ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!