示例#1
0
        public override string Generate(Expressions.CreateIndexExpression expression)
        {
            var indexWithSchema = Quoter.QuoteIndexName(expression.Index.Name, expression.Index.SchemaName);

            var columnList = expression.Index.Columns.Aggregate(new StringBuilder(), (item, itemToo) =>
            {
                var accumulator = item.Length == 0 ? string.Empty : ", ";
                var direction   = itemToo.Direction == Direction.Ascending ? string.Empty : " DESC";

                return(item.AppendFormat("{0}{1}{2}", accumulator, Quoter.QuoteColumnName(itemToo.Name), direction));
            });

            return(string.Format(
                       "CREATE {0}INDEX {1} ON {2} ({3})",
                       expression.Index.IsUnique ? "UNIQUE " : string.Empty,
                       indexWithSchema,
                       Quoter.QuoteTableName(expression.Index.TableName, expression.Index.SchemaName),
                       columnList));
        }
示例#2
0
 public void Process(Expressions.CreateIndexExpression expression)
 {
     Process(Generator.Generate(expression));
 }