1.表达式是匿名委托,本不是委托,是通过显示或隐式的转成委托实例
2.表达式树是一种数据结构,是不可执行代码,它需要在c#代码中编译成sql语句,然后再sql库中执行查询操作
表达式树种的每个节点本身表示一个表达式
3.表达式转换成表达式树 Expression<表达式>
4,对于IEnumerable(即在内存中查询)要用func<>(表达式(委托)),对于委托而言直接执行即可
对于Queryable(在库里查询),传入参数是表达式树,得先解析翻译成sql语句,然后在外部库中执行
5.将表达式树编译成可执行的委托 表达式树名.Compile()(参数)
6.表达式的属性:
(1).body 表达式的主体
(2)parameters 表达式的参数
(3)NodeType 表达式的返回参数
(4)Type 表达式类型 如Func<int,int>