Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Pengendali Ternary LINQ Meniru Penyata KES SQL untuk Kemas Kini Kuantiti Bersyarat?
Pernyataan Kes dalam LINQ: Contoh Praktikal
Pernyataan CASE yang berkuasa LINQ menyediakan sintaks ringkas untuk penilaian bersyarat dalam pertanyaan. Pertimbangkan keperluan berikut untuk mengemas kini status stok dalam LINQ:
osc_products.products_quantity = CASE WHEN itempromoflag <> 'N' THEN 100000 WHEN itemcat1 IN ('1','2','31') AND itemsalestatus = 'S' THEN 100000 WHEN itemsalestatus = 'O' THEN 0 ELSE cds_oeinvitem.itemqtyonhand - cds_oeinvitem.itemqtycommitted END
Dalam LINQ, penyata CASE ini boleh ditulis seperti berikut:
var query = from items in db.cdsItems where items.ItemHandHeldFlag.Equals("Y") & items.ItemQtyOnHand - items.ItemQtyCommitted > 0 select new { Quantity = items.ItemPromoflag != "N" ? 100000 : items.Itemcat1 == "1" || items.Itemcat1 == "2" || items.Itemcat1 == "31" && items.Itemsalestatus == "S" ? 100000 : items.Itemsalestatus == "O" ? 0 : items.Itemqtyonhand - items.Itemqtycommitted };
Pertanyaan ini menilai keadaan pernyataan CASE dengan berkesan dan memberikan nilai yang sesuai kepada sifat Kuantiti jenis tanpa nama.
Ingat, keseluruhan Kenyataan LINQ mengendalikan kriteria tambahan seperti ItemHandHeldFlag dan syarat ketersediaan.
Atas ialah kandungan terperinci Bagaimanakah Pengendali Ternary LINQ Meniru Penyata KES SQL untuk Kemas Kini Kuantiti Bersyarat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!