首頁 > 資料庫 > mysql教程 > 如何在 LINQ 中實作 CASE 語句邏輯以進行條件賦值?

如何在 LINQ 中實作 CASE 語句邏輯以進行條件賦值?

Patricia Arquette
發布: 2025-01-11 19:17:42
原創
740 人瀏覽過

How Can I Implement CASE Statement Logic in LINQ for Conditional Value Assignment?

在 LINQ 中使用 CASE 語句

LINQ(C#)允許使用類似 CASE 語句的邏輯來根據特定條件執行條件值賦值。

以下程式碼片段展示如何使用 CASE 語句為 osc_products 表中的 products_quantity 屬性賦值。賦值規則如下:

  • 如果 itempromoflag 不等於 'N',則將 products_quantity 設定為 100,000。
  • 如果 itemcat1 等於 '1'、'2' 或 '31' 且 itemsalestatus 等於 'S',則將 products_quantity 設為 100,000。
  • 如果 itemsalestatus 等於 'O',則將 products_quantity 設為 0。
  • 否則,將 products_quantity 設定為 itemqtyonhand 減去 itemqtycommitted 的結果。

為了在 LINQ 中實作這個 CASE 語句,可以在 select 子句中使用條件式。例如下:

<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>
登入後複製

請注意,此 LINQ 查詢透過將 CASE 語句和 products_quantity 的賦值組合到 select 子句中的單一表達式中,簡化了程式碼。

以上是如何在 LINQ 中實作 CASE 語句邏輯以進行條件賦值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板