Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Melaksanakan Pernyataan SQL CASE dalam LINQ menggunakan C#?

Bagaimana untuk Melaksanakan Pernyataan SQL CASE dalam LINQ menggunakan C#?

Susan Sarandon
Susan Sarandonasal
2024-12-27 22:42:10201semak imbas

How to Implement a SQL CASE Statement in LINQ using C#?

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!

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