Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Melaksanakan Logik Penyata CASE dalam LINQ untuk Penetapan Nilai Bersyarat?
Menggunakan pernyataan CASE dalam LINQ
LINQ (C#) membenarkan penggunaan logik seperti pernyataan CASE untuk melaksanakan penetapan nilai bersyarat berdasarkan syarat tertentu.
Coretan kod berikut menunjukkan cara menggunakan pernyataan CASE untuk menetapkan nilai pada atribut osc_products
dalam jadual products_quantity
. Peraturan tugasan adalah seperti berikut:
itempromoflag
tidak sama dengan 'N', maka tetapkan products_quantity
kepada 100,000. itemcat1
bersamaan dengan '1', '2' atau '31' dan itemsalestatus
bersamaan dengan 'S', kemudian tetapkan products_quantity
kepada 100,000. itemsalestatus
sama dengan 'O', kemudian tetapkan products_quantity
kepada 0. products_quantity
kepada hasil itemqtyonhand
tolak itemqtycommitted
. Untuk melaksanakan pernyataan CASE ini dalam LINQ, anda boleh menggunakan ungkapan bersyarat dalam klausa select
. Contohnya adalah seperti berikut:
<code class="language-csharp">cdsDBDataContext db = new cdsDBDataContext(); var query = from items in db.cdsItems where items.ItemHandHeldFlag == "Y" && items.ItemQtyOnHand - items.ItemQtyCommitted > 0 select new { ItemID = items.ItemID, ProductsQuantity = (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 };</code>
Perhatikan bahawa pertanyaan LINQ ini memudahkan kod dengan menggabungkan pernyataan CASE dan penugasan products_quantity
ke dalam satu ungkapan dalam klausa select
.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Logik Penyata CASE dalam LINQ untuk Penetapan Nilai Bersyarat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!