前言
通过上篇我们大概了解了下表达式树大概是什么,那本篇将带来表达式树的一些进阶应用。
动态构建表达式树
在实际应用中无论是用于查询还是其他方面我们或多或少都会想能不能动态表达式树来降低开发时间。比如如果查询时用拼写SQL形式查询,我们可以写一个SQL拼接的方法,这个方法通过字符串拼接外部传入的 “WHERE”就能比较灵活的写出一个通用查询方法。而此时如果换成通过写表达式树的形式的话我们能不能类似于以前的哪种字符串拼接的方式拼接出一个我们想要的表达式树呢?答案时能的。表达式树在程序运行时其就是一个表达式树对象,我们只需要参照MSDN中的文档就能创建出任意我们想要的表达式树对象,只是这可能会比较麻烦。
那么这里我们可以选择自己花时间自己好好研究下表达式树,也可以用现有的第三方工具(库)比如DynamicExpresso。
动态创建委托
依旧直接上代码
/// <summary>
/// 账号金额
/// </summary>
public class AccountAmount
{
public int Id { get; set; }
/// <summary>
/// 冻结金额
/// </summary>
public int Frozen { get; set; }
/// <summary>
/// 可用金额
/// </summary>
public int Available { get; set; }
/// &l