diff --git a/src/EFCore.Design/Migrations/Design/MigrationsScaffolder.cs b/src/EFCore.Design/Migrations/Design/MigrationsScaffolder.cs index 7698372b3a1..c2ca85b3b0f 100644 --- a/src/EFCore.Design/Migrations/Design/MigrationsScaffolder.cs +++ b/src/EFCore.Design/Migrations/Design/MigrationsScaffolder.cs @@ -174,13 +174,13 @@ public virtual ScaffoldedMigration ScaffoldMigration( var codeGenerator = Dependencies.MigrationsCodeGeneratorSelector.Select(language); var migrationCode = codeGenerator.GenerateMigration( migrationNamespace, - migrationName, + migrationId, upOperations, downOperations); var migrationMetadataCode = codeGenerator.GenerateMetadata( migrationNamespace, _contextType, - migrationName, + migrationId, migrationId, Dependencies.Model); var modelSnapshotCode = codeGenerator.GenerateSnapshot( diff --git a/test/EFCore.Design.Tests/Design/OperationExecutorTest.cs b/test/EFCore.Design.Tests/Design/OperationExecutorTest.cs index 7e185a7610b..6b0257e285d 100644 --- a/test/EFCore.Design.Tests/Design/OperationExecutorTest.cs +++ b/test/EFCore.Design.Tests/Design/OperationExecutorTest.cs @@ -76,6 +76,7 @@ private void TestAddMigrationPositive( string processedOutputDir, string productVersion) { + var migrationTypeName = $"_11112233445566_{processedMigrationName}"; using var tempPath = new TempDirectory(); var resultHandler = ExecuteAddMigration(tempPath, migrationName, Path.Combine(tempPath, outputDir), productVersion); @@ -124,7 +125,7 @@ namespace My.Gnomespace.Data { [DbContext(typeof(OperationExecutorTest.GnomeContext))] [Migration("11112233445566_{{migrationName}}")] - partial class {{processedMigrationName}} + partial class {{migrationTypeName}} { /// protected override void BuildTargetModel(ModelBuilder modelBuilder) @@ -147,7 +148,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) namespace My.Gnomespace.Data { /// - public partial class {{processedMigrationName}} : Migration + public partial class {{migrationTypeName}} : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) diff --git a/test/EFCore.Design.Tests/Migrations/Design/MigrationScaffolderTest.cs b/test/EFCore.Design.Tests/Migrations/Design/MigrationScaffolderTest.cs index 016c5f00b0f..e95faedd9a9 100644 --- a/test/EFCore.Design.Tests/Migrations/Design/MigrationScaffolderTest.cs +++ b/test/EFCore.Design.Tests/Migrations/Design/MigrationScaffolderTest.cs @@ -51,6 +51,18 @@ public void ScaffoldMigration_can_override_namespace() Assert.Equal("OverrideNamespace.OverrideSubNamespace", migration.SnapshotSubnamespace); } + [ConditionalFact] + public void ScaffoldMigration_uses_migration_id_as_type_name() + { + var scaffolder = CreateMigrationScaffolder(); + + var migration = scaffolder.ScaffoldMigration("DateTime", "WebApplication1"); + + Assert.Contains($"public partial class _{migration.MigrationId} : Migration", migration.MigrationCode); + Assert.Contains($"partial class _{migration.MigrationId}", migration.MetadataCode); + Assert.Contains($"[Migration(\"{migration.MigrationId}\")]", migration.MetadataCode); + } + private IMigrationsScaffolder CreateMigrationScaffolder() where TContext : DbContext, new() { diff --git a/test/EFCore.SqlServer.HierarchyId.Tests/MigrationTests.cs b/test/EFCore.SqlServer.HierarchyId.Tests/MigrationTests.cs index 8513756aa09..cfe9ec410e1 100644 --- a/test/EFCore.SqlServer.HierarchyId.Tests/MigrationTests.cs +++ b/test/EFCore.SqlServer.HierarchyId.Tests/MigrationTests.cs @@ -13,7 +13,7 @@ namespace Microsoft.EntityFrameworkCore.SqlServer; public class MigrationTests { - private delegate string MigrationCodeGetter(string migrationName, string rootNamespace); + private delegate string MigrationCodeGetter(string migrationId, string rootNamespace); private delegate string SnapshotCodeGetter(string rootNamespace, string migrationId); @@ -56,7 +56,7 @@ private static void ValidateMigrationAndSnapshotCode( .GetRequiredService() .ScaffoldMigration(migrationName, rootNamespace); - var expectedMigration = migrationCodeGetter(migrationName, rootNamespace); + var expectedMigration = migrationCodeGetter(migration.MigrationId, rootNamespace); var expectedSnapshot = snapshotCodeGetter(rootNamespace, migration.MigrationId); Assert.Equal(expectedMigration, migration.MigrationCode, ignoreLineEndingDifferences: true); diff --git a/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/Migrations/AnonymousArraySeedContext.cs b/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/Migrations/AnonymousArraySeedContext.cs index 174170aa2bb..856e1e42d1e 100644 --- a/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/Migrations/AnonymousArraySeedContext.cs +++ b/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/Migrations/AnonymousArraySeedContext.cs @@ -41,7 +41,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) }); } - public override string GetExpectedMigrationCode(string migrationName, string rootNamespace) + public override string GetExpectedMigrationCode(string migrationId, string rootNamespace) => $@"using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.SqlServer.Types; @@ -52,7 +52,7 @@ public override string GetExpectedMigrationCode(string migrationName, string roo namespace {rootNamespace}.Migrations {{ /// - public partial class {migrationName} : Migration + public partial class _{migrationId} : Migration {{ /// protected override void Up(MigrationBuilder migrationBuilder) diff --git a/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/Migrations/MigrationContext.cs b/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/Migrations/MigrationContext.cs index c347a9cc590..dd40f9e55a6 100644 --- a/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/Migrations/MigrationContext.cs +++ b/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/Migrations/MigrationContext.cs @@ -44,6 +44,6 @@ protected void RemoveVariableModelAnnotations(ModelBuilder modelBuilder) model.RemoveAnnotation(SqlServerAnnotationNames.ValueGenerationStrategy); } - public abstract string GetExpectedMigrationCode(string migrationName, string rootNamespace); + public abstract string GetExpectedMigrationCode(string migrationId, string rootNamespace); public abstract string GetExpectedSnapshotCode(string rootNamespace, string migrationId); } diff --git a/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/Migrations/TypedArraySeedContext.cs b/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/Migrations/TypedArraySeedContext.cs index 94edd2ca7d3..741c61dc3b6 100644 --- a/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/Migrations/TypedArraySeedContext.cs +++ b/test/EFCore.SqlServer.HierarchyId.Tests/TestModels/Migrations/TypedArraySeedContext.cs @@ -41,7 +41,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) }); } - public override string GetExpectedMigrationCode(string migrationName, string rootNamespace) + public override string GetExpectedMigrationCode(string migrationId, string rootNamespace) => $@"using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.SqlServer.Types; @@ -52,7 +52,7 @@ public override string GetExpectedMigrationCode(string migrationName, string roo namespace {rootNamespace}.Migrations {{ /// - public partial class {migrationName} : Migration + public partial class _{migrationId} : Migration {{ /// protected override void Up(MigrationBuilder migrationBuilder)