如何修改C#代码中的Where查询语句,使其不受ParkingRequest布尔值限制返回所有响应
问题原因
你当前代码里的Where()方法设置了过滤条件r => r.ParkingRequest == true,只会返回ParkingRequest为true的记录,值为false的记录全部被过滤,所以无法展示。
解决方案
方案1(推荐)
直接移除多余的过滤条件,使用你原本注释掉的写法,返回完整的Repository.Responses集合即可:
public ViewResult ListResponses() { return View(Repository.Responses); }
方案2(兼容必须保留Where的场景)
如果你的业务逻辑要求必须保留Where()写法,可以调整过滤条件覆盖所有布尔值情况,效果和直接返回原集合完全一致,无额外性能收益,仅做兼容参考:
public ViewResult ListResponses() { return View(Repository.Responses.Where(r => r.ParkingRequest == true || r.ParkingRequest == false)); }
错误写法说明
你之前尝试的== true || false写法不符合语法逻辑,由于运算符优先级,该表达式等价于(r.ParkingRequest == true) || false,最终判断逻辑还是仅匹配ParkingRequest为true的记录,和原有错误代码效果一致,无法正常展示全部数据。
内容的提问来源于stack exchange,提问作者Sleexic
相关产品推荐
相关产品推荐

