2013-04-04 47 views
2

我的數據庫表中有一個名爲IsActive的字段,它可以是TrueFalse。當我查詢數據庫,不過,我的查詢還返回無效行:布爾LINQ問題

這是我的LINQ查詢:

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

只是一個提示,你不需要'== true',要麼'c.IsActive'用於'true',要麼'!c.IsActive'用於'false' – mattytommo 2013-04-04 17:43:58

回答

12

你必須在查詢一個錯字。當您應該使用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查詢),以更好地確保您不會再碰到這個問題提供服務。