首頁 >後端開發 >C++ >如何使用 C# 在 LINQ 中實作 SQL CASE 語句?

如何使用 C# 在 LINQ 中實作 SQL CASE 語句?

Susan Sarandon
Susan Sarandon原創
2024-12-27 22:42:10134瀏覽

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

複雜條件的LINQ CASE 語句實現

CASE 語句是一個強大的工具,用於評估多個條件並根據每種情況傳回特定結果。本文旨在為在 LINQ for C# 中實作 CASE 語句提供清晰的解釋和解決方案。

在一個特定場景中,查詢試圖根據一組條件更新庫存狀態:

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 

要將此CASE 語句轉換為LINQ,我們可以採用以下語法:

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);

此LINQ 表達式使用三元運算子來模擬CASE 語句的條件並將對應的值設為Products_Quantity屬性。結果是一個根據指定條件更新庫存狀態的查詢。

請注意,提供的程式碼片段假定您已經使用適當的資料來源建立了 LINQ 查詢。程式碼中的查詢變數應代表您建立的 LINQ 查詢。

以上是如何使用 C# 在 LINQ 中實作 SQL CASE 語句?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn