Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Pengendali Ternary LINQ Meniru Penyata KES SQL untuk Kemas Kini Kuantiti Bersyarat?

Bagaimanakah Pengendali Ternary LINQ Meniru Penyata KES SQL untuk Kemas Kini Kuantiti Bersyarat?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-03 16:48:43474semak imbas

How Can LINQ's Ternary Operator Replicate SQL's CASE Statement for Conditional Quantity Updates?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn