首页 > 后端开发 > C++ > 如何使用 C# 在 LINQ 中实现 SQL CASE 语句?

如何使用 C# 在 LINQ 中实现 SQL CASE 语句?

Susan Sarandon
发布: 2024-12-27 22:42:10
原创
143 人浏览过

How to Implement a SQL CASE Statement in LINQ using C#?

复杂条件的 LINQ CASE 语句实现

CASE 语句是一个强大的工具,用于评估多个条件并根据每种情况返回特定结果。本文旨在为在 LINQ for C# 中实现 CASE 语句提供清晰的解释和解决方案。

在一个特定场景中,查询试图根据一组条件更新库存状态:

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 
登录后复制

要将此 CASE 语句转换为 LINQ,我们可以采用以下语法:

query.Select(item => item.Products_Quantity = 
  item.ItemPromoFlag != 'N' ? 100000 : 
  (item.ItemCat1 == "1" || item.ItemCat1 == "2" || item.ItemCat1 == "31") && item.ItemSaleStatus == "S" ? 100000 : 
  item.ItemSaleStatus == "O" ? 0 : 
  cds_oeinvitem.ItemQtyOnHand - cds_oeinvitem.ItemQtyCommitted);
登录后复制

此 LINQ 表达式使用三元运算符来模拟 CASE 语句的条件并将相应的值设置为 Products_Quantity 属性。结果是一个根据指定条件更新库存状态的查询。

请注意,提供的代码片段假定您已经使用适当的数据源建立了 LINQ 查询。代码中的查询变量应代表您创建的 LINQ 查询。

以上是如何使用 C# 在 LINQ 中实现 SQL CASE 语句?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板