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