布尔LINQ问题

use*_*596 2 c# linq linq-to-entities entity-framework

我在我的数据库表中有一个字段IsActive,可以是True或者False.但是,当我查询数据库时,我的查询也会返回非活动行:

这是我的LINQ查询:

var j = from x in db.DashboardMenus 
        where x.ParentID == c.SiteMenuID && c.IsActive == true 
        orderby x.SortOrder ascending 
        select x;
Run Code Online (Sandbox Code Playgroud)

Iro*_*n84 12

您的查询中有拼写错误.您正在使用的c.IsActive时候x.IsActive,因为那是您尝试查询的表对象.否则x,只要c处于活动状态(这似乎是您的问题),它将返回ParentID和SiteMenuID匹配的所有对象.

var j = from x in db.DashboardMenus 
        where x.ParentID == c.SiteMenuID && x.IsActive
        orderby x.SortOrder ascending 
        select x;
Run Code Online (Sandbox Code Playgroud)

在将来,通过使用更具描述性(和更长)的变量名称(甚至是LINQ查询)可以更好地为您提供更好的服务,以便更好地确保不再遇到此问题.