Linq中的Expression(表达式树)之个人见解
Expression属于System.Linq.Expression命名空间下。
ask:Expression是什么?
answer:Expression是表达式树
ask:表达式树用来干什么?
answer:表达式树提供一个将可执行代码转换成数据结构的方法,我们可以把它理解为一种数据结构。
ask:可执行代码指什么?
answer:可执行代码其实就是指C#代码,例:lambda表达式是可执行代码、LINQ查询表达式也是可执行代码
ask:表达式树价值体现在什么地方?
answer:在LINQ中,我们使用Linq查询表达式来从数据库中获取数据,很显示,数据库并不认识LINQ语法,它只认识SQL语句,这时表达式树就派上用场了,它将LINQ查询表达式解析成一个数据结构,再对数据结构进行分析,进而组合成SQL数据库需要的SQL语句。