2
我有以下的LINQ到SQL語句:Linq-to-SQL導致問題的三元運算符?
return db.Photos.SingleOrDefault(p => p.PhotoID == id
&& includePending ? true : p.Live);
對於includePending我傳遞錯誤的。在數據庫中,「Live」對於除2張照片以外的所有照片都是正確的。
然而,不是像預期的那樣返回一張照片,而是返回除2之外的數據庫中的所有照片! PhotoID是主鍵(因此對於一個項目只能是true)和布爾邏輯表明FALSE AND TRUE = FALSE。那麼這裏發生了什麼?爲什麼它忽略我查詢中的p.PhotoID == id
部分?
+1。只是包括這個優先列表供參考:http://msdn.microsoft.com/en-us/library/6a71f45d.aspx – 2011-06-01 07:29:12
@Mitch:是的。儘管如此,我仍然懶得學習它,對於這樣的相對罕見的事情 - 我寧願將它明確地*任一方式。 – 2011-06-01 07:30:10
是的。具有明確意圖的代碼總是贏得我..... – 2011-06-01 07:32:04