internal static string ToSqlInternal(this SqlStatement sql, SqlDialect dialect = null, Action <SqlParameter> parameterCallback = null) { if (sql == null) { throw new ArgumentNullException(nameof(sql)); } dialect = dialect ?? SqlDialect.Current; StringBuilder builder = new StringBuilder(); using (SqlWriter writer = new SqlWriter(builder, dialect)) { var visitor = new SqlWriterVisitor(writer) { ParameterVisited = parameterCallback }; sql.Accept(visitor); } return(builder.ToString()); }
private static string ToSqlInternal(this SqlStatement sql, Action<SqlParameter> parameterAction = null) { if (sql == null) throw new ArgumentNullException("sql"); StringBuilder builder = new StringBuilder(); using (SqlWriter writer = new SqlWriter(builder)) { SqlWriterVisitor visitor = new SqlWriterVisitor(writer); visitor.ParameterVisited = parameterAction; visitor.Visit(sql); } return builder.ToString(); }