解释 System.Linq.Expressions.Expression (表达式)
主要的项目结构参考了ExpressionParser项目思路
- 主要目的是为了能够解释一个复杂的表达式树,将其拆解然后获取到表达式的各项属性,去组成自己想要的内容 : 如 lambda to sql,lambda to mongo
- 这是个重复的轮子, 比如我参考的项目
- 但是我希望这可以是个更好复用的项目
// Func<T1,T2>最后一个泛型是返回参数类型,其他都是输入参数类型
// x 指代输入参数 => 指代 ruturn
Expression<Func<Product, bool>> exp =
x => x.Name == "1" && x.Id == 2 && (x.PriceInCents == 3 || x.Id == 4) ||
x.Name == "5" && x.Id == 6 && (x.PriceInCents == 7 || x.Id == 8);
- 将表达式树拆解成最小状态的表达式
- 支持 System.Linq.Expressions.BinaryExpression
- 支持 System.Linq.Expressions.BlockExpression
- 支持 System.Linq.Expressions.ConditionalExpression
- 支持 System.Linq.Expressions.ConstantExpression
- 支持 System.Linq.Expressions.DebugInfoExpression
- 支持 System.Linq.Expressions.DefaultExpression
- 支持 System.Linq.Expressions.DynamicExpression
- 支持 System.Linq.Expressions.GotoExpression
- 支持 System.Linq.Expressions.IndexExpression
- 支持 System.Linq.Expressions.InvocationExpression
- 支持 System.Linq.Expressions.LabelExpression
- 支持 System.Linq.Expressions.LambdaExpression
- 支持 System.Linq.Expressions.ListInitExpression
- 支持 System.Linq.Expressions.LoopExpression
- 支持 System.Linq.Expressions.MemberExpression
- 支持 System.Linq.Expressions.MemberInitExpression
- 支持 System.Linq.Expressions.MethodCallExpression
- 支持 System.Linq.Expressions.NewArrayExpression
- 支持 System.Linq.Expressions.NewExpression
- 支持 System.Linq.Expressions.ParameterExpression
- 支持 System.Linq.Expressions.RuntimeVariablesExpression
- 支持 System.Linq.Expressions.SwitchExpression
- 支持 System.Linq.Expressions.TryExpression
- 支持 System.Linq.Expressions.TypeBinaryExpression
- 支持 System.Linq.Expressions.UnaryExpression
- AddShow
- AddWhere
- IN
- LIKE
- AddJoin
- AddOrder
- PageConfig
- AddGroup
- Having
- Top
- Count