protected virtual Expression VisitWhere(WhereExpression node)
 {
     var left = CheckBoolean(node.Left);
     var right = CheckBoolean(node.Right);
     Visit(left);
     if (right != null)
     {
         Append(ToSign(ExpressionType.And));
         Visit(right);
     }
     return node;
 }
 protected virtual Expression VisitWhere(WhereExpression node)
 {
     Visit(node.Left);
     if (node.Right != null)
     {
         Append(ToSign(ExpressionType.And));
         Visit(node.Right);
     }
     return node;
 }