public override string Generate( string migrationNamespace, string migrationName, IReadOnlyList <MigrationOperation> upOperations, IReadOnlyList <MigrationOperation> downOperations) { Check.NotEmpty(migrationNamespace, nameof(migrationNamespace)); Check.NotEmpty(migrationName, nameof(migrationName)); Check.NotNull(upOperations, nameof(upOperations)); Check.NotNull(downOperations, nameof(downOperations)); var builder = new IndentedStringBuilder(); builder .AppendLine("using System.Collections.Generic;") .AppendLine("using Microsoft.Data.Entity.Relational.Migrations;") .AppendLine("using Microsoft.Data.Entity.Relational.Migrations.Builders;") .AppendLine("using Microsoft.Data.Entity.Relational.Migrations.Operations;") .AppendLine() .Append("namespace ").AppendLine(migrationNamespace) .AppendLine("{"); using (builder.Indent()) { builder .Append("public partial class ").Append(_code.Identifier(migrationName)).AppendLine(" : Migration") .AppendLine("{"); using (builder.Indent()) { builder .AppendLine("public override void Up(MigrationBuilder migration)") .AppendLine("{"); using (builder.Indent()) { _operationGenerator.Generate("migration", upOperations, builder); } builder .AppendLine("}") .AppendLine() .AppendLine("public override void Down(MigrationBuilder migration)") .AppendLine("{"); using (builder.Indent()) { _operationGenerator.Generate("migration", downOperations, builder); } builder.AppendLine("}"); } builder.AppendLine("}"); } builder.AppendLine("}"); return(builder.ToString()); }
public override string Generate( string migrationNamespace, string migrationName, IReadOnlyList <MigrationOperation> upOperations, IReadOnlyList <MigrationOperation> downOperations) { Check.NotEmpty(migrationNamespace, nameof(migrationNamespace)); Check.NotEmpty(migrationName, nameof(migrationName)); Check.NotNull(upOperations, nameof(upOperations)); Check.NotNull(downOperations, nameof(downOperations)); var builder = new IndentedStringBuilder(); var namespaces = new List <string> { "System", "System.Collections.Generic", "Microsoft.Data.Entity.Migrations" }; namespaces.AddRange(GetNamespaces(upOperations.Concat(downOperations))); foreach (var n in namespaces.Distinct()) { builder .Append("using ") .Append(n) .AppendLine(";"); } builder .AppendLine() .Append("namespace ").AppendLine(_code.Namespace(migrationNamespace)) .AppendLine("{"); using (builder.Indent()) { builder .Append("public partial class ").Append(_code.Identifier(migrationName)).AppendLine(" : Migration") .AppendLine("{"); using (builder.Indent()) { builder .AppendLine("protected override void Up(MigrationBuilder migrationBuilder)") .AppendLine("{"); using (builder.Indent()) { _operationGenerator.Generate("migrationBuilder", upOperations, builder); } builder .AppendLine("}") .AppendLine() .AppendLine("protected override void Down(MigrationBuilder migrationBuilder)") .AppendLine("{"); using (builder.Indent()) { _operationGenerator.Generate("migrationBuilder", downOperations, builder); } builder.AppendLine("}"); } builder.AppendLine("}"); } builder.AppendLine("}"); return(builder.ToString()); }