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(