Dalam SQL, anda boleh menggunakan klausa
untuk kumpulan data berdasarkan pelbagai lajur. Contohnya:
GROUP BY
Bagaimana untuk melaksanakan fungsi serupa di Linq?
SELECT * FROM <tablename> GROUP BY <column1>,<column2>
Satu kaedah adalah menggunakan jenis tanpa nama. Berikut adalah contoh:
Kod ini dikelompokkan berdasarkan atributdan
unsur -unsur dalam urutanvar groupedData = x.GroupBy(x => new { x.Column1, x.Column2 });
x
<> Contoh data Column1
Column2
dan pernyataan sisipan berikut:
anda boleh menggunakan kod berikut untuk menukar ini ke linq:
public class QuantityBreakdown { public int MaterialID { get; set; } public int ProductID { get; set; } public float Quantity { get; set; } }
Ekspresi LINQ ini dibayar mengikut
INSERT INTO @QuantityBreakdown (MaterialID, ProductID, Quantity) SELECT MaterialID, ProductID, SUM(Quantity) FROM @Transactions GROUP BY MaterialID, ProductID
, dan kemudian mengira jumlah nilai
setiap kumpulan.var groupedTransactions = transactions .GroupBy(t => new { t.MaterialID, t.ProductID }) .Select(g => new QuantityBreakdown { MaterialID = g.Key.MaterialID, ProductID = g.Key.ProductID, Quantity = g.Sum(t => t.Quantity) });
Atas ialah kandungan terperinci Bagaimana cara kumpulan data dengan pelbagai lajur di Linq?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!