LINQ中哪个where子句转换为数据库查询中的where子句

时间:2013-06-27 22:30:17

标签: c# performance linq linq-to-sql

我刚刚开始阅读有关LINQ的内容,有一件事一直困扰着我。 LINQ将LINQ查询转换为对数据库服务器的相应SQL查询。因为我怀疑LINQ可以将任何代码转换为SQL语句,所以我必须假设这里有一些限制。

因为我想让发送到服务器的查询尽可能具有限制性,LINQ会变成SQL,LINQ变成SQL会不会是什么?

例如,where employee.name == "Test"看起来非常简单,但where isEven(employee.number)呢?还是更复杂的东西?

1 个答案:

答案 0 :(得分:1)

Here是MSDN页面,详细说明了LINQ to SQL支持的方法。

您将无法在表达式树内部使用自己的方法调用,因为LINQ to SQL无法理解如何将方法转换为SQL。

一些ORM(例如NHibernate)允许您为自己的方法定义自己的生成器以生成SQL(NHibernates案例中的HQL),我不相信L2S支持这一点。