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)