【发布时间】:2013-06-27 22:30:16
【问题描述】:
我刚刚开始阅读有关 LINQ 的内容,但有一件事一直困扰着我。 LINQ 将 LINQ 查询转换为对数据库服务器的相应 SQL 查询。由于我怀疑 LINQ 是否可以将任何代码转换为 SQL 语句,我必须假设这里有一些限制。
由于我希望尽可能限制发送到服务器的查询,那么 LINQ 可以转换为 SQL,而 LINQ 不能转换为 SQL?
例如where employee.name == "Test" 看起来很容易转换,但是where isEven(employee.number) 呢?或者更复杂的东西?
【问题讨论】:
-
您会发现方法调用会抛出异常,因为 LINQ 将表达式树转换为 SQL。它无法转换方法的随机复杂逻辑。话虽如此.. 有一些内置的 .NET 函数,LINQ 可以很容易地识别和转换..
-
@SimonWhitehead 谢谢,这是有道理的,听起来像是解决这个问题的明智之举。
标签: c# performance linq linq-to-sql