public LikeExpressionBuilder(Operator oper) { _expression = new LikeExpression { Operator = oper }; }
public override void Visit(LikeExpression e) { _expression.SetOperand(e); }
public virtual void Visit(LikeExpression e) { throw new NotSupportedException(); }
public virtual void Visit(LikeExpression e) { e.Column.Accept(this); switch (e.Operator) { case Operator.LikeStartsWith: case Operator.LikeContains: case Operator.LikeEndsWith: _sql.Append(" LIKE "); break; case Operator.NotLikeStartsWith: case Operator.NotLikeContains: case Operator.NotLikeEndsWith: _sql.Append(" NOT LIKE "); break; default: throw new ArgumentOutOfRangeException(); } var value = (string)e.Value.Value; switch (e.Operator) { case Operator.LikeStartsWith: case Operator.NotLikeStartsWith: value = value + "%"; break; case Operator.LikeEndsWith: case Operator.NotLikeEndsWith: value = "%" + value; break; case Operator.LikeContains: case Operator.NotLikeContains: value = "%" + value + "%"; break; default: throw new ArgumentOutOfRangeException(); } e.Value.Value = value; Visit(e.Value); }
public override void Visit(LikeExpression e) { _expression.Operand = e; }