protected override Expression VisitScalar(SqlScalarExpression expression) { SqlScalarExpression current; if (!TryGetCurrent(expression, out current)) { return expression; } if (!(this.result &= current.NodeType == expression.NodeType)) { return expression; } if (!(this.result &= current.Type == expression.Type)) { return expression; } this.currentObject = current.Select; this.VisitSelect(expression.Select); if (!this.result) { return expression; } this.currentObject = current; return expression; }
protected virtual Expression VisitScalar(SqlScalarExpression expression) { var select = this.Visit(expression.Select); if (select != expression.Select) { return expression.ChangeSelect((SqlSelectExpression)select); } return expression; }