public PredicateBuilder(Expression sourceExpression, ExpressionOperator @operator, object value, PredicateBuilderConfiguration configuration = null) { Configuration = configuration ?? PredicateBuilderConfiguration.Default; Expression = sourceExpression; Operator = @operator; Value = value; EffectiveType = Nullable.GetUnderlyingType(Expression.Type) ?? Expression.Type; IsNullableType = EffectiveType != Expression.Type; IsNullable = IsNullableType || !EffectiveType.IsValueType; DataType = GetDataType(Expression.Type); }
public ExpressionNodeVisitorInput(ParameterExpression itParameterExpression, PredicateBuilderConfiguration defaultConfiguration = null, IDictionary <string, PredicateBuilderConfiguration> configurations = null) { ItParameterExpression = itParameterExpression; DefaultConfiguration = defaultConfiguration ?? PredicateBuilderConfiguration.Default; if (configurations != null) { Configurations = new ReadOnlyDictionary <string, PredicateBuilderConfiguration>(configurations); } else { Configurations = new Dictionary <string, PredicateBuilderConfiguration>(); } }
public Expression <Func <T, bool> > VisitLambda <T>(NodeBase root, PredicateBuilderConfiguration configuration = null) { var input = new ExpressionNodeVisitorInput(typeof(T), configuration); return(Expression.Lambda <Func <T, bool> >(Visit(root, input), input.ItParameterExpression)); }
public LambdaExpression VisitLambda(NodeBase root, Type instanceType, PredicateBuilderConfiguration configuration = null) { var input = new ExpressionNodeVisitorInput(instanceType, configuration); return(Expression.Lambda(Visit(root, input), input.ItParameterExpression)); }
protected virtual Expression BuildUnaryNodeExpression(BinaryNode node, ParameterExpression itParameter, PredicateBuilderConfiguration nodeConfiguration) { return(PredicateBuilder.GetPredicateExpression(itParameter, node.Expression, node.Operator, node.Value, nodeConfiguration)); }
public ExpressionNodeVisitorInput(Type itParameterType, string itParameterName, PredicateBuilderConfiguration defaultConfiguration, IDictionary <string, PredicateBuilderConfiguration> configurations = null) : this(Expression.Parameter(itParameterType, itParameterName ?? ""), defaultConfiguration, configurations) { }
public ExpressionNodeVisitorInput(Type itParameterType, PredicateBuilderConfiguration defaultConfiguration, IDictionary <string, PredicateBuilderConfiguration> configurations) : this(itParameterType, defaultConfiguration?.ItParameterName, defaultConfiguration, configurations) { }
public ExpressionNodeVisitorInput(Type itParameterType, PredicateBuilderConfiguration defaultConfiguration) : this(itParameterType, defaultConfiguration?.ItParameterName, defaultConfiguration, null) { }
public static Expression GetPredicateExpression (Expression sourceExpression, ExpressionOperator @operator, object value, PredicateBuilderConfiguration configuration = null) { var predicateBuilder = new PredicateBuilder(sourceExpression, @operator, value, configuration); return(predicateBuilder.BuildPredicateExpression()); }
public static Expression GetPredicateExpression (ParameterExpression instanceParameter, string sourceExpression, ExpressionOperator @operator, object value, PredicateBuilderConfiguration configuration = null) { var left = MemberExpressionBuilder.GetExpressionSelector(instanceParameter, sourceExpression).Body; return(GetPredicateExpression(left, @operator, value, configuration)); }
public Expression <Func <T, bool> > GetLambdaExpression <T>(PredicateBuilderConfiguration configuration = null) { return(new ExpressionNodeVisitor().VisitLambda <T>(this, configuration)); }
public LambdaExpression GetLambdaExpression(Type type, PredicateBuilderConfiguration configuration = null) { return(new ExpressionNodeVisitor().VisitLambda(this, type, configuration)); }