定义lambda表达式树形结构
Expression<Func<T, bool>> lambda = t => true;
定义查询条件
StartTime = 2017/10/13 0:00:00
添加查询条件
lambda = lambda.And(t => t.StartTime > StartTime);
对查询条件重新复制
StartTime = 2019/10/13 0:00:00
最后执行query.where(lambda)时实际执行的查询条件是查询StartTime 大于2019/10/13 0:00:00的查询结果
总结Expression本质是指针性质,添加查询条件后,会将指定指向定义好的对象,而不是赋值给lambda表达式。
当查询条件执行后指针指向对象当前的值,进行查询。