我今天在我的一個Linq-To-Entitites查詢中偶然發現了一個null ref異常,並想知道這怎麼可能。似乎有條件的OR用作OR-gate在Linq-To-Entities中沒有效果。我查詢的一個簡單的例子是這樣的:條件OR對Linq-to-entities沒有影響嗎?
from a in db.Articles
where a.Author == "John Doe"
&& (tag == null || a.Tags.Any(t => t.TagName == tag.TagName))
select a;
現在,當標籤是NULL,對那裏查詢仍然會被執行並且在tag.TagName出現一個空引用異常的右側。也許這是因爲Linq-To-Entities總是將完整的語句翻譯成SQL?
無論如何...如何解決這個問題?
非常感謝:)
非常感謝,馬特!我很好奇,現在生成的SQL看起來像什麼......將嘗試它:) –