Esempio n. 1
0
        public MyParameter AddWhereParameter(String columnName, MyOperand op, SQLiteParameter param, object value)
        {
            MyParameter my_param = new MyParameter(columnName, param)
            {
                Operator = op, Value = value
            };

            _whereParameters.Add(my_param);
            return(my_param);
        }
    public static ExpressionType ToExpressionType(this MyOperand operand)
    {
        switch (operand)
        {
        case MyOperand.Greater: return(ExpressionType.GreaterThan);

        case MyOperand.Less: return(ExpressionType.LessThan);

        case MyOperand.Equal: return(ExpressionType.Equal);

        default: throw new NotSupportedException();
        }
    }
    public Predicate <T> GetFilterPredicate <T, R>(Expression <Func <T, R> > selector, MyOperand operand, R value)
    {
        var getExpressionBody = selector.Body as MemberExpression;
        var parameter         = Expression.Parameter(typeof(T), "u");
        var left             = Expression.Property(parameter, typeof(T).GetProperty(getExpressionBody.Member.Name));
        var right            = Expression.Constant(value);
        var binaryExpression = Expression.MakeBinary(operand.ToExpressionType(), left, right);

        return(Expression.Lambda <Predicate <T> >(binaryExpression, parameter).Compile());
    }