public virtual void Visit(BinaryExpression e)
        {
            var left = e.Operand1;
            var right = e.Operand2;

            var isNull = false;

            if (e.Operand1 is NullExpression)
            {
                left = e.Operand2;
                right = e.Operand1;
                isNull = true;
            }
            else if (e.Operand2 is NullExpression)
            {
                isNull = true;
            }

            left.Accept(this);

            if (isNull)
            {
                _sql.Append(" IS");
                if (e.Operator == Operator.NotEquals)
                {
                    _sql.Append(" NOT");
                }
            }
            else
            {
                _sql.Append(" ").Append(e.Operator.GetOperator()).Append(" ");
            }

            right.Accept(this);
        }
 public override void Visit(BinaryExpression e)
 {
     _expression.SetOperand(e);
 }
 public virtual void Visit(BinaryExpression e)
 {
     throw new NotSupportedException();
 }
 public override void Visit(BinaryExpression e)
 {
     _expression.Operand = e;
 }