2

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

这是我的 LINQ 查询:

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

1 回答 1

12

您的查询中有错字。您在c.IsActive应该使用时使用x.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 查询也是如此),以更好地确保您不会再次遇到此问题。

于 2013-04-04T17:51:43.210 回答