public IndexBuilder(string name) { if (string.IsNullOrWhiteSpace(name)) { throw new ArgumentException("Cannot be null or empty.", nameof(name)); } _index = new IndexEntity(); _index.Name = name; }
public string Generate(IndexEntity index) { if (index == null) { throw new ArgumentNullException(nameof(index)); } var sql = new StringBuilder(); sql.Append("CREATE "); if (index.IsUnique) { sql.Append("UNIQUE "); } sql.Append("INDEX "); if (index.ExistsCheck) { sql.Append("IF NOT EXISTS "); } sql.Append("["); sql.Append(index.Name); sql.Append("]"); sql.Append(" ON "); sql.Append("["); sql.Append(index.Table); sql.Append("]"); sql.Append(" ("); sql.AppendLine(); for (int i = 0; i < index.Columns.Count; i++) { var column = index.Columns[i]; sql.Append(_indent); sql.Append(column); if (i + 1 < index.Columns.Count) { sql.Append(","); } sql.AppendLine(); } sql.Append(");"); return(sql.ToString()); }