c# - 为什么我在 Linq 查询中的 where 条件无法正常工作?
问题描述
我有一个 linq 查询,我有以下 where 条件:
where obj.DATUMREAL == date && (real == 2 ? true : (obj.ZAPKONC == null ? 0 : ((bool)obj.ZAPKONC ? 1 : 0)) == real)
如果我将参数设置real
为 2,它可以正常工作,但如果我将其设置为 1 或 0,where 语句只会忽略第一个条件obj.DATUMREAL == date
,它只过滤 && 之后的第二部分。
这是整个查询:
var result = (from obj in entities.OBJKVPOPLANU
where obj.DATUMREAL == date
&& (real == 2 ?
true : (obj.ZAPKONC == null ? 0
: ((bool)obj.ZAPKONC ? 1 : 0)) == real)
group obj by obj.VODSISTEM into objg
join v in entities.SIVODSISTEM
on objg.FirstOrDefault().VODSISTEM equals v.SIFRA.ToString()
into vj
from subpet in vj.DefaultIfEmpty()
select new
{
subpet.SIFRA,
STEV = objg.Count(),
subpet.NAZIV
}).ToList();
return result;
如果我将real
值设置为 2,我会返回 30 个项目,这些项目会被 where 的第一部分过滤,但如果我将其设置为 1 或 0,我会得到更多完全忽略 where 的第一部分的项目。
更新
我通过交换周围的两个部分来解决它where statement
。我不知道是什么问题
解决方案
推荐阅读
- java - 为什么这个 java 代码没有产生我期望的结果?
- r - 在 ggplot2 错误中添加区域图外的文本
- file - 如何在 Jenkins 中将文件传递给下游作业
- c# - Fortify 扫描为代码提供 JSON 注入问题
- excel - Powershell根据条件在csv文件的前两列中导入值
- swift - EKEventStore 请求 macOS 上的联系人访问权限
- jestjs - 遇到 Jest/enzyme 错误“Popper:提供的引用或 popper 参数无效”。
- node.js - docker-compose & pm2:容器立即退出
- bash - 需要我的脚本来回答政府横幅
- oracle - 在 Oracle 插入语句中动态选择列名