本文主要是介绍EFCore高级技术:表达式树,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
表达式树(expression tree)是用树形数据结构来表示代码逻辑运算的技术,在运行时访问逻辑运算的结构。
1、可以从Lambda表达式生成的表达式树:
Expression<Func<TBook, bool>> e1 = b => b.Price > 5;
编译器会把 b => b.Price > 5构建成Expression的表达式树对象。
var e2 = db.TBooks.Where(e => e.Price > 5);通过硬编码VS也会重载出Expression类型。
2、Fun和Expression的区别
Func<TBook, bool> f1 = b => b.Price > 5 || b.AuthorName.Contains("yy");
Expression<Func<TBook, bool>> a1 = b => b.Price > 5 || b.AuthorName.Contains("yy");
Console.WriteLine(f1);
Console.WriteLine(a1);
Func输出的结果只有参数、返回值类型,Expression中有内部运算逻辑,表示Express
这篇关于EFCore高级技术:表达式树的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!