我的数据库表中有一个名为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;
答案 0 :(得分: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查询)可以更好地为您提供更好的服务,以便更好地确保不再遇到此问题。