gpt4 book ai didi

c# - Linq to Sql isnull in where 子句不起作用

转载 作者:行者123 更新时间:2023-11-30 22:05:36 25 4
gpt4 key购买 nike

我的 Linq 查询为:

var notstartedcount = (from te in context.EH_PP_TeacherEvaluations
join tesrt in context.EH_PP_TeacherEvaluationStatusesRefTables
on te.EH_PP_TESRT_TeacherEvalStatusID equals
tesrt.EH_PP_TESRT_TeacherEvalStatusID
where tesrt.EH_PP_TESRT_TeacherEvalStatusID.Equals("1") ||
tesrt.EH_PP_TESRT_TeacherEvalStatusID.Equals("")
select te).Count();

我只是想像在 Sql 中那样将 Isnull(ColumnName,replacement) 放在 where 条件中。

例如:

where isNull(EH_PP_TESRT_TeacherEvalStatusID,0)=1

我为 linq 保留了相同的条件:

var notstartedcount = (from te in context.EH_PP_TeacherEvaluations
join tesrt in context.EH_PP_TeacherEvaluationStatusesRefTables
on te.EH_PP_TESRT_TeacherEvalStatusID equals
tesrt.EH_PP_TESRT_TeacherEvalStatusID
where
isnull(tesrt.EH_PP_TESRT_TeacherEvalStatusID.Equals(Null),0).Equals("1") ||
tesrt.EH_PP_TESRT_TeacherEvalStatusID.Equals("")
select te).Count();

但在 linq 的情况下会出错。

我怎样才能把这个条件放进去?

最佳答案

只需使用合并 ?? 运算符

在哪里

(tesrt.EH_PP_TESRT_TeacherEvalStatusID  ?? 0) == 1

或者如果它是一个字符串(你的代码不是很清楚)

(tesrt.EH_PP_TESRT_TeacherEvalStatusID  ?? "0") == "1"

但是根据给出的示例代码,这似乎没有用(第一个版本应该也是如此)。

如果你的意思是

take all values where tesrt.EH_PP_TESRT_TeacherEvalStatusID IS NULL or tesrt.EH_PP_TESRT_TeacherEvalStatusID == 1

然后

tesrt.EH_PP_TESRT_TeacherEvalStatusID == null || tesrt.EH_PP_TESRT_TeacherEvalStatusID == 1

tesrt.EH_PP_TESRT_TeacherEvalStatusID ?? 1 == 1

关于c# - Linq to Sql isnull in where 子句不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24284402/

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