diff --git a/src/EFCore.Relational/Migrations/Internal/MigrationsModelDiffer.cs b/src/EFCore.Relational/Migrations/Internal/MigrationsModelDiffer.cs index 73291ab01b6..ed91236f62e 100644 --- a/src/EFCore.Relational/Migrations/Internal/MigrationsModelDiffer.cs +++ b/src/EFCore.Relational/Migrations/Internal/MigrationsModelDiffer.cs @@ -304,7 +304,7 @@ protected virtual IReadOnlyList Sort( } } - createTableOperations = createTableGraph.TopologicalSort( + createTableOperations = (List)createTableGraph.TopologicalSort( (principalCreateTableOperation, createTableOperation, cyclicAddForeignKeyOperations) => { foreach (var cyclicAddForeignKeyOperation in cyclicAddForeignKeyOperations) @@ -321,7 +321,7 @@ protected virtual IReadOnlyList Sort( } return true; - }).ToList(); + }); var dropTableGraph = new Multigraph(); dropTableGraph.AddVertices(dropTableOperations); @@ -340,13 +340,13 @@ protected virtual IReadOnlyList Sort( } var newDiffContext = new DiffContext(); - dropTableOperations = dropTableGraph.TopologicalSort( + dropTableOperations = (List)dropTableGraph.TopologicalSort( (dropTableOperation, principalDropTableOperation, foreignKeys) => { dropForeignKeyOperations.AddRange(foreignKeys.SelectMany(c => Remove(c, newDiffContext))); return true; - }).ToList(); + }); return dropForeignKeyOperations .Concat(dropTableOperations) @@ -429,7 +429,6 @@ private IEnumerable DiffAnnotations( IRelationalModel source, IRelationalModel target) { - var sourceMigrationsAnnotations = source?.GetAnnotations().ToList(); var targetMigrationsAnnotations = target?.GetAnnotations().ToList(); if (source == null) @@ -446,17 +445,18 @@ private IEnumerable DiffAnnotations( if (target == null) { - sourceMigrationsAnnotations = MigrationsAnnotations.ForRemove(source).ToList(); - if (sourceMigrationsAnnotations.Count > 0) + var sourceMigrationsAnnotationsForRemoved = MigrationsAnnotations.ForRemove(source).ToList(); + if (sourceMigrationsAnnotationsForRemoved.Count > 0) { var alterDatabaseOperation = new AlterDatabaseOperation(); - alterDatabaseOperation.OldDatabase.AddAnnotations(sourceMigrationsAnnotations); + alterDatabaseOperation.OldDatabase.AddAnnotations(sourceMigrationsAnnotationsForRemoved); yield return alterDatabaseOperation; } yield break; } + var sourceMigrationsAnnotations = source?.GetAnnotations().ToList(); if (HasDifferences(sourceMigrationsAnnotations, targetMigrationsAnnotations)) { var alterDatabaseOperation = new AlterDatabaseOperation();