Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Meniru Pernyataan SQL CASE Menggunakan LINQ?

Bagaimanakah Saya Boleh Meniru Pernyataan SQL CASE Menggunakan LINQ?

Susan Sarandon
Lepaskan: 2024-12-29 03:50:13
asal
422 orang telah melayarinya

How Can I Replicate SQL CASE Statements Using LINQ?

Pelaksanaan LINQ Penyata KES

Dalam LINQ, anda boleh menggunakan pernyataan bersyarat untuk mensimulasikan kefungsian pernyataan CASE yang terdapat dalam SQL. Mari kita periksa contoh khusus:

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

Untuk menukar penyataan CASE ini kepada LINQ, anda boleh menggunakan pendekatan berikut:

// Linq syntax
var query = from items in db.cdsItems
            where items.ItemHandHeldFlag.Equals("Y") && 
            items.ItemQtyOnHand - items.ItemQtyCommitted > 0
            select items;

// Alternate lambda syntax with expression body
var query2 = db.cdsItems
    .Where(items => items.ItemHandHeldFlag.Equals("Y") && 
            (items.ItemQtyOnHand - items.ItemQtyCommitted > 0))
    .Select(items => items);
Salin selepas log masuk

Pertanyaan ini mensimulasikan gelagat pernyataan CASE dengan berkesan dan mengemas kini status stok daripada pengeluaran ke tapak perdagangan seperti yang dimaksudkan.

Perhatikan bahawa LINQ menyediakan cara yang lebih ringkas dan boleh diselenggara untuk mengendalikan pernyataan bersyarat berbanding dengan menggunakan pernyataan CASE dalam SQL. Ia membolehkan anda menggunakan satu pernyataan untuk menilai berbilang keadaan dan menghasilkan output yang diingini.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Meniru Pernyataan SQL CASE Menggunakan LINQ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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