private async Task <int> CalculateMigrationStartIndexAsync( string migrationId, IMigrationManager <TContext> manager, CancellationToken ct) { var dbMigrations = await manager.GetAllMigrationsAsync(ct).ConfigureAwait(false); if (dbMigrations.Count <= 0) { return(0); } var sortedDbMigrations = new SortedList <string, string>(dbMigrations.Count); foreach (var dbMigration in dbMigrations) { sortedDbMigrations.Add(dbMigration, dbMigration); } FailIfAppliedMigrationsMismatchInMemory(sortedDbMigrations.Keys); return(sortedDbMigrations.ContainsKey(migrationId) ? -1 : sortedDbMigrations.Count); }