public CreateTableCommand Column(string columnName, DbType dbType, Action <CreateColumnCommand> column = null) { var command = new CreateColumnCommand(Name, columnName); command.WithType(dbType); if (column != null) { column(command); } TableCommands.Add(command); return(this); }
private void Run(StringBuilder builder, CreateColumnCommand command) { // name builder.Append(_dialect.QuoteForColumnName(command.ColumnName)).Append(Space); if (!command.IsIdentity || _dialect.HasDataTypeInIdentityColumn) { builder.Append(_dialect.GetTypeName(command.DbType, command.Length, command.Precision, command.Scale)); } // append identity if handled if (command.IsIdentity && _dialect.SupportsIdentityColumns) { builder.Append(Space).Append(_dialect.IdentityColumnString); } // [default value] if (command.Default != null) { builder.Append(" default ").Append(_dialect.GetSqlValue(command.Default)).Append(Space); } // nullable builder.Append(command.IsNotNull ? " not null" : !command.IsPrimaryKey && !command.IsUnique ? _dialect.NullColumnString : string.Empty); // append unique if handled, otherwise at the end of the satement if (command.IsUnique && _dialect.SupportsUnique) { builder.Append(" unique"); } }