Pelaksanaan Penyata KES LINQ untuk Keadaan Kompleks
Penyata KES ialah alat yang berkuasa untuk menilai berbilang keadaan dan mengembalikan keputusan khusus berdasarkan setiap kes . Artikel ini bertujuan untuk memberikan penjelasan dan penyelesaian yang jelas untuk melaksanakan kenyataan CASE dalam LINQ untuk C#.
Dalam satu senario tertentu, pertanyaan bertujuan untuk mengemas kini status stok berdasarkan satu set syarat:
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
Untuk menterjemah pernyataan CASE ini kepada LINQ, kami boleh menggunakan sintaks berikut:
query.Select(item => item.Products_Quantity = item.ItemPromoFlag != 'N' ? 100000 : (item.ItemCat1 == "1" || item.ItemCat1 == "2" || item.ItemCat1 == "31") && item.ItemSaleStatus == "S" ? 100000 : item.ItemSaleStatus == "O" ? 0 : cds_oeinvitem.ItemQtyOnHand - cds_oeinvitem.ItemQtyCommitted);
Ini Ungkapan LINQ menggunakan operator ternary untuk mencontohi syarat pernyataan CASE dan menetapkan nilai yang sepadan dengan sifat Products_Quantity. Hasilnya ialah pertanyaan yang mengemas kini status stok berdasarkan syarat yang ditentukan.
Perhatikan bahawa coretan kod yang disediakan menganggap bahawa anda telah pun mewujudkan pertanyaan LINQ menggunakan sumber data yang sesuai. Pembolehubah pertanyaan dalam kod harus mewakili pertanyaan LINQ yang telah anda buat.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Pernyataan SQL CASE dalam LINQ menggunakan C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!