public override void AddWhere(NewArrayExpression exp, ExpressionInfo arg) { foreach (var item in exp.Expressions) { HelperTool.AddWhere(item, arg); } }
public override void AddWhere(BinaryExpression exp, ExpressionInfo arg) { HelperTool.AddWhere(exp.Left, arg); arg.SetRelation(exp.NodeType.ToString()); HelperTool.AddWhere(exp.Right, arg); }
public override void AddWhere(MethodCallExpression exp, ExpressionInfo arg) { arg.SetRelation(exp.Method.Name); foreach (var argument in exp.Arguments) { HelperTool.AddWhere(argument, arg); } HelperTool.AddWhere(exp.Object, arg); }
public override void AddWhere(MemberExpression exp, ExpressionInfo arg) { if (exp.Expression != null) { // 存储变量名称,再需要解析变量值的时候获取此字段的值 arg.ConstantName = exp.Member.Name; HelperTool.AddWhere(exp.Expression, arg); arg.SetObject(exp.Member.Name); } else { var fi = (PropertyInfo)exp.Member; var val = fi.GetValue(((ConstantExpression)exp.Expression)?.Value, null); arg.SetObjectValue(val); } }
public override void AddWhere(UnaryExpression exp, ExpressionInfo arg) { arg.SetObjectUnary(exp.NodeType); HelperTool.AddWhere(exp.Operand, arg); }
public override void AddWhere(LambdaExpression exp, ExpressionInfo arg) { HelperTool.AddWhere(exp.Body, arg); }
public override void AddShow(BinaryExpression exp, ExpressionInfo arg) { HelperTool.AddWhere(exp.Left, arg); HelperTool.AddWhere(exp.Right, arg); }