今日、Linq-To-Entitites クエリの 1 つで null ref 例外に出くわし、どうしてそれが可能なのか疑問に思いました。OR ゲートとして使用される条件付き 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;
tag が NULL の場合でも、where クエリの右側が実行され、tag.TagName で NULL 参照例外が発生します。これは、Linq-To-Entities が常に完全なステートメントを SQL に変換するためでしょうか?
とにかく...この問題を回避するにはどうすればよいですか?
どうもありがとう :)