Autor Beitrag
Schafschaf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 63
Erhaltene Danke: 2

Windows 10
C# (VS 2015)
BeitragVerfasst: Mo 27.06.16 16:58 
Hallo,

Ich habe eine Datenbank aus einem EF Code First Model. Aufgrund von Fehlern beim Inserten, weil der PK kein Identity war habe ich die Tabelle gelöscht.
Nun ist das EF aber nicht mehr synchron zur Datenbank, der update-database Befehl stellt die Tabelle nicht wieder her.
Was kann ich tun?
Hoffe mir kann jemand helfen :(

LG Schafschaf
jfheins
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 918
Erhaltene Danke: 158

Win 10
VS 2013, VS2015
BeitragVerfasst: Di 28.06.16 00:23 
Falls du (hoffentlich) noch die Migrationsklasse hast, kannst
Update-Database -TargetMigration "NameOfPreviousMigration" ausführen.
Falls nötig (sehr wahrscheinlich) musst du in der Klasse einen Delete-Table Befehl entfernen (weil du das ja schon selber gemacht hast) damit die down-Migraton fehlerfrei durchläuft.

Sobald die down-Migration durch ist, kannst du die Migrationsklasse löschen.

Für das nächste Mal: Mach' die Migration rückgängig, indem du Update-Database verwendest und implizit down() ausführst. Alles andere führt zu Problemen, weil der DB-Stand nicht passt. (In der einen Tabelle werden ja alle ausgeführten Migrationen festgehalten)
Schafschaf Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 63
Erhaltene Danke: 2

Windows 10
C# (VS 2015)
BeitragVerfasst: Di 28.06.16 09:21 
Leider kann ich keine Migrationsklasse finden. In dem Migration Ordner in meinem Projekt ist nur Configuration.cs. Wo ich AutomaticMigration einstellen und eine Seed Methode implementieren kann.
In der Datenbank ist aber eine Tabelle __MigrationHistory.
Schafschaf Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 63
Erhaltene Danke: 2

Windows 10
C# (VS 2015)
BeitragVerfasst: Di 28.06.16 10:59 
Habe es jetzt hinbekommen. Habe die __MigrationHistory Tabelle in eine temporäre Tabelle gebackupt. Dann alles aus der __MIgrationHistory gelöscht und mit add-migration eine neue Migration erstellt.
Diese Migration will dann natürlich alle Tabellen neu erstellen. Dann habe ich alle Create Befehle bis auf die betroffene Tabelle gelöscht und die Migration ausgeführt mit update-database.
Dann wieder die __MigrationHistory geleert und aus dem Backup alles wieder zurück in die __MigrationHistory.
Jetzt ist und funktioniert alles wie vorher :)