gpt4 book ai didi

c# - 在 LINQ 中编写 Case 语句

转载 作者:行者123 更新时间:2023-11-30 15:24:44 30 4
gpt4 key购买 nike

我是 LINQ 的新手,我需要用 CASE 语句编写一个 LINQ 语句。我正在尝试将以下查询转换为 linq。这里 1 和 0 是 bool 值。我怎样才能做到这一点

Select CASE [db].[table] WHEN 1 THEN 'Yes' WHEN 0 THEN 'No' END AS Options from table

我尝试了以下但现在工作

Options = table.Options  = 1 ? "Yes" : table.Options  = 0 ? "No"

最佳答案

有几件事你做错了——第一,三元运算符的语法是

condition ? resultIfTrue : resultIfFalse

其次,需要使用相等运算符(==)进行比较,而不是赋值运算符(=)。

因此,table.Options = 1 ? "is":table.Options = 0 ? “否” 应替换为

table.Options == 1 ? "Yes" : "No"

根据您实际的 LINQ 提供程序,可能有一个帮助程序允许您构建类似 SQL 的 case 表达式(包括条件和 choice-y 类型),但没有它是不可能的确切地知道你在使用什么。如果没有帮助程序,您将不得不使用三元运算符(阅读多个条件有点疯狂,但是哦......)。

例如,我的 LINQ 提供程序使用以下语法:

Case(table.Options).When(1, "Yes").Else("No").End()

Case().When(table.Options == 1, "Yes").Else("No").End()

但同样,唯一的标准方法是三元运算符。查看特定 LINQ 提供程序的文档,了解它是否支持类似 SQL 的 case 表达式以及如何支持。

关于c# - 在 LINQ 中编写 Case 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32433570/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com