From dcecbe627b0654070073265da9f3846cbeb39ce9 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Mon, 25 Aug 2025 23:02:54 +0000
Subject: [PATCH 1/2] Initial plan
From ad44498184faa3c2a2bf05674642b0da6670cf71 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Mon, 25 Aug 2025 23:17:52 +0000
Subject: [PATCH 2/2] Fix EditionOptions missing from Down() method in initial
migrations
Remove exclusion of EditionOptions from SqlServerMigrationsAnnotationProvider.ForRemove() method.
This allows database-level annotations like HasDatabaseMaxSize to be properly included in the
Down() method of initial migrations.
Co-authored-by: AndriySvyryd <6539701+AndriySvyryd@users.noreply.github.com>
---
.../SqlServerMigrationsAnnotationProvider.cs | 2 +-
.../Migrations/SqlServerModelDifferTest.cs | 27 +++++++++++++++++++
2 files changed, 28 insertions(+), 1 deletion(-)
diff --git a/src/EFCore.SqlServer/Migrations/Internal/SqlServerMigrationsAnnotationProvider.cs b/src/EFCore.SqlServer/Migrations/Internal/SqlServerMigrationsAnnotationProvider.cs
index 8aae2c65c39..22722dbd692 100644
--- a/src/EFCore.SqlServer/Migrations/Internal/SqlServerMigrationsAnnotationProvider.cs
+++ b/src/EFCore.SqlServer/Migrations/Internal/SqlServerMigrationsAnnotationProvider.cs
@@ -26,7 +26,7 @@ public SqlServerMigrationsAnnotationProvider(MigrationsAnnotationProviderDepende
///
public override IEnumerable ForRemove(IRelationalModel model)
- => model.GetAnnotations().Where(a => a.Name != SqlServerAnnotationNames.EditionOptions);
+ => model.GetAnnotations();
///
public override IEnumerable ForRemove(ITable table)
diff --git a/test/EFCore.SqlServer.Tests/Migrations/SqlServerModelDifferTest.cs b/test/EFCore.SqlServer.Tests/Migrations/SqlServerModelDifferTest.cs
index 3253a8eeee6..78f5949b379 100644
--- a/test/EFCore.SqlServer.Tests/Migrations/SqlServerModelDifferTest.cs
+++ b/test/EFCore.SqlServer.Tests/Migrations/SqlServerModelDifferTest.cs
@@ -42,6 +42,33 @@ public void Alter_database_edition_options()
alterDatabaseOperation.OldDatabase[SqlServerAnnotationNames.EditionOptions]);
});
+ [ConditionalFact]
+ public void Create_database_with_edition_options()
+ => Execute(
+ _ => { },
+ source => { },
+ target => target.HasDatabaseMaxSize("10"),
+ upOps =>
+ {
+ Assert.Equal(1, upOps.Count);
+
+ var alterDatabaseOperation = Assert.IsType(upOps[0]);
+ Assert.Equal(
+ "MAXSIZE = 10",
+ alterDatabaseOperation[SqlServerAnnotationNames.EditionOptions]);
+ Assert.Null(alterDatabaseOperation.OldDatabase[SqlServerAnnotationNames.EditionOptions]);
+ },
+ downOps =>
+ {
+ Assert.Equal(1, downOps.Count);
+
+ var alterDatabaseOperation = Assert.IsType(downOps[0]);
+ Assert.Null(alterDatabaseOperation[SqlServerAnnotationNames.EditionOptions]);
+ Assert.Equal(
+ "MAXSIZE = 10",
+ alterDatabaseOperation.OldDatabase[SqlServerAnnotationNames.EditionOptions]);
+ });
+
[ConditionalFact]
public void Alter_table_MemoryOptimized()
=> Execute(