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
Lepaskan: 2025-01-03 16:48:43
asal
473 orang telah melayarinya

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  
Salin selepas log masuk

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
              };
Salin selepas log masuk

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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan