public string GetSql(string sourceTable) { StringBuilder sb = new StringBuilder(); sb.Append(this.GetJoinType()); sb.Append(' '); sb.Append(SuperSql.FormatTable(this.Table, this.Parameters)); if (!string.IsNullOrEmpty(this.TableAlias)) { sb.Append(" as "); sb.Append(SuperSql.FormatTableAlias(this.TableAlias, this.Parameters)); } sb.Append(" ON "); StringBuilder ex = new StringBuilder(); foreach (IJoinItem item in this._expressions) { if (ex.Length > 0) { ex.Append(" AND "); } if (item.IsRaw) { ex.Append(item.Value); } else { ex.Append(SuperSql.FormatTableAlias(sourceTable, this.Parameters)); ex.Append('.'); ex.Append(SuperSql.FormatColumn(item.Column, this.Parameters)); ex.Append('='); if (string.IsNullOrEmpty(this.TableAlias)) { ex.Append(SuperSql.FormatTable(this.Table, this.Parameters)); } else { ex.Append(SuperSql.FormatTableAlias(this.TableAlias, this.Parameters)); } ex.Append('.'); ex.Append(SuperSql.FormatColumn(item.Value, this.Parameters)); } } sb.Append(ex); return(sb.ToString()); }
public void FormatTable() { var table = "tab_users"; SuperSql.DefaultFormatter = FormatterLibrary.MsSql; var result1 = SuperSql.FormatTable(table); Assert.Equal('[' + table + ']', result1); // SuperSql.DefaultFormatter = FormatterLibrary.MySql; // var result2 = SuperSql.FormatTable(table); // Assert.Equal('`' + table + '`', result2); // // SuperSql.DefaultFormatter.EscapeEnabled = false; // var result3 = SuperSql.FormatTable(table); // Assert.Equal(table, result3); }