/// <summary> /// Specify the table for the new column<br/> /// If <paramref name="migration"/>.SchemaPrefix have a value, the Syntax-TableName will be computed to {<paramref name="migration"/>.SchemaPrefix}{<paramref name="tableName"/>}<br/> /// If NOT, the Syntax-TableName will be the same as {<paramref name="tableName"/>} /// </summary> /// <param name="syntax">Syntax to extend</param> /// <param name="tableName"> /// The table name for the new column <br/> /// See summary-section how this parameter is used /// </param> /// <param name="migration"></param> /// <returns>The interface to specify the table schema or column information</returns> public static ICreateColumnAsTypeOrInSchemaSyntax OnTable(this ICreateColumnOnTableSyntax syntax, string tableName, IMigrationModel migration) { var tableSyntax = syntax.OnTable(migration.GetPrefixedName(tableName)); tableSyntax.InSchema(migration.SchemaName); return(tableSyntax); }
public override void Up() { var tool = new DataJsonDiff(); var inTable = tool.InCommingTables(json, srcJson); var outTable = tool.OutCommingTables(json, srcJson); var inCol = tool.InCommingColumns(json, srcJson); var outCol = tool.OutCommingColumn(json, srcJson); var inRel = tool.InCommingRelation(json, srcJson); var outRel = tool.OutCommingRelation(json, srcJson); var builder = Create; foreach (var item in inTable) { ICreateTableWithColumnOrSchemaOrDescriptionSyntax tableBuilder = builder.Table(item); tableBuilder.WithColumn("Id").AsGuid(); } foreach (var item in inCol) { var colOnTableName = FindTableName(item.Key, json.tables); foreach (var colItem in item.Value) { ICreateColumnOnTableSyntax colBuilder = Create.Column(colItem.name.Value); ICreateColumnAsTypeSyntax coOptionlBuilder = colBuilder.OnTable(colOnTableName); //coOptionlBuilder.AsString(); ProcessType(colItem.type.Value, coOptionlBuilder); } } foreach (var item in inRel) { ICreateForeignKeyFromTableSyntax relationBuilder = Create.ForeignKey(item); string tableName = json.tables[item.tableId].Value; relationBuilder.FromTable(tableName).ForeignColumn("").ToTable("").PrimaryColumn(""); } var DelBuilder = Delete; foreach (var item in outTable) { DelBuilder.Table(item); } foreach (var item in outCol) { DelBuilder.Column("").FromTable(""); } foreach (var item in outRel) { DelBuilder.ForeignKey("").OnTable(""); } }
public static ICreateColumnAsTypeSyntax OnTable(this ICreateColumnOnTableSyntax syntax, string schema, string table) { return(syntax.OnTable(table).InSchema(schema)); }