我知道 LINQ 提供程序是将实际的 LINQ 查询转换为 SQL 查询(或其他)的“东西”。它通过遍历 LINQ 查询的 AST 并呈现适当的 SQL 查询来实现。到目前为止,一切都很好。
现在我可以想象这适用于简单的 C# 代码,例如
where person.Age >= 18
可以(主要是直接)翻译成 SQL。但是,如果我提供任意复杂的 C# 代码,例如:
where person.Name.StartsWith(person.Age < 25 ? 'X' : 'Y')
SQL 中没有与此等效的,那么 LINQ 提供程序在这种情况下会做什么?