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()); }