LINQ プロバイダーは、実際の LINQ クエリを SQL クエリ (または何でも) に変換する「もの」であることを理解しています。これは、LINQ クエリの AST を走査し、適切な SQL クエリをレンダリングすることによって行われます。ここまでは順調ですね。
これは、次のような単純な C# コードで機能すると想像できます。
where person.Age >= 18
これは (ほとんど直接) SQL に変換できます。しかし、次のような任意の複雑な C# コードを提供するとどうなるでしょうか。
where person.Name.StartsWith(person.Age < 25 ? 'X' : 'Y')
SQL にはこれに相当するものはありません。そのような場合、LINQ プロバイダーは何をしますか?