我的理解是:
表达式树是表示算术或布尔表达式的内存中的表示形式。这些表达式被存储为解析树,因此我们可以轻松地将其转换为任何其他语言。
Linq-to-SQL使用表达式树。通常在Linq-to-SQL查询中,编译器将其转换为解析的表达式树。这些树被传递给SQL Server作为T-SQL语句。 SQL服务器执行T-SQL查询并发送结果。这就是为什么当您执行Linq-to-SQL时,会得到IQueryable<T>
而不是IEnumerable<T>
;因为IQueryable
包含。
public IQueryable : IEnumerable
{
Type Element {get;}
Expression Expression {get;}
IQueryableProvider Provider {get;}
}
问题:
微软在LINQ-to-SQL中使用表达式树。我可以用表达式树的哪些方法来提高我的代码效率?
除了LINQ-to-SQL和Linq to amazon,还有谁在他们的应用程序中使用表达式树?
Linq-to-Object返回
IEnumerable
,Linq-to-SQL返回IQueryable
,那么LINQ-to-XML返回什么?