LINQ 中的 Case 語句:一個實際範例
LINQ 強大的 CASE 語句為查詢中的條件評估提供了簡潔的語法。考慮以下在LINQ 中更新庫存狀態的要求:
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
在LINQ 中,此CASE 語句可以編寫如下:
var query = from items in db.cdsItems where items.ItemHandHeldFlag.Equals("Y") & items.ItemQtyOnHand - items.ItemQtyCommitted > 0 select new { Quantity = 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 };
此查詢有效地評估CASE 語句條件並為匿名類型的Quantity 屬性指派適當的值。
請記住,整個 LINQ 語句處理其他條件,例如作為 ItemHandHeldFlag 和可用性條件。
以上是LINQ 的三元運算子如何複製 SQL 的 CASE 語句以進行條件數量更新?的詳細內容。更多資訊請關注PHP中文網其他相關文章!