c# - bool LINQ 问题

标签 c# linq entity-framework linq-to-entities

我的数据库表中有一个名为 IsActive 的字段,它可以是 TrueFalse。但是,当我查询数据库时,我的查询也会返回非事件行:

这是我的 LINQ 查询:

var j = from x in db.DashboardMenus 
        where x.ParentID == c.SiteMenuID && c.IsActive == true 
        orderby x.SortOrder ascending 
        select x;

最佳答案

您的查询中有错字。当您应该使用 x.IsActive 时,您却在使用 c.IsActive,因为这是您要查询的表对象。否则,只要 c 处于事件状态(这似乎是您的问题),它就会返回所有 x 对象,其中 ParentID 和 SiteMenuID 匹配。

var j = from x in db.DashboardMenus 
        where x.ParentID == c.SiteMenuID && x.IsActive
        orderby x.SortOrder ascending 
        select x;

将来,使用更具描述性(和更长)的变量名(甚至对于 LINQ 查询)可能会更好地为您服务,以更好地确保您不会再次遇到此问题。

关于c# - bool LINQ 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15818052/

相关文章:

c# - 在文件夹中查找具有相同名称但扩展名不同的文件

c# - 字符串拆分并将结果分布在不同的数组中

c# - Entity Framework 拆分表删除

c# - 使用 EF6+MVC5 渲染网页时性能不佳。为什么?

c# - 避免或修复 .Net Core 中的 namespace 污染

c# - 与 WPF 中的其他内联相比,如何水平居中内联(运行)

c# - 为什么TemplateBinding无法绑定(bind)Button.Content?

c# - 仅基于子字符串过滤列表<字符串>

c# - 当项目相等时从可枚举源中删除单个项目

c# - 如何找到试图访问不存在的数据库列的代码?