最近学表达式树,明白了Linq to sql 是采用表达式树来构造SQL字符串的,其中返回结果
IQueryable<T>类型
但如果是Linq to object ,返回的是IEnumerable<T>类型的,这个接口没定义表达式树。所以它在转换成本地可执行代码时,是转换的扩展方法吗?
比如
from a in student where a.age>3 select a
转换成
student.where(p=> p.age>3) 这样吗?
请大神指教,LINQ表达式在不转换成表达式树情况下,究竟会转换成什么样的C#代码
Linq to object 直接就是执行委托了.传进去的直接执行就行了.因为不需要进行解析.
Linq to sql因为要转生成sql所以要解析表达式数
linq表达式不转成表达式树的时候他就是一个匿名委托