布尔LINQ问题

本文关键字:问题 LINQ 布尔 | 更新日期: 2023-09-27 18:07:30

我有一个字段在我的数据库表称为IsActive,可以是TrueFalse。但是,当我查询数据库时,我的查询还返回非活动行:

这是我的LINQ查询

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

布尔LINQ问题

您的查询中有一个错别字。当您应该使用x.IsActive时,您正在使用c.IsActive,因为这是您试图查询的表对象。否则,它将返回所有x对象,其中ParentID和SiteMenuID匹配,只要c是活动的(这似乎是你的问题)。

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

在将来,您可能会得到更好的服务,有更多的描述性(和更长的)变量名(甚至对于LINQ查询),以更好地确保您不会再遇到这个问题。