在 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中文網其他相關文章!