首页 > 数据库 > mysql教程 > 如何在 LINQ 中实现 CASE 语句逻辑以进行条件赋值?

如何在 LINQ 中实现 CASE 语句逻辑以进行条件赋值?

Patricia Arquette
发布: 2025-01-11 19:17:42
原创
742 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板