Fragensteller
EF6 Migration läuft nicht richtig!!

Frage
-
Hallo NG,
Datenbank ist mit dem Model gleich:
Add-Migration First
The Designer Code for this migration file includes a snapshot of your current Code First model. This snapshot is used to calculate the changes to your model when you scaffold the next migration. If you make additional changes to your model that you want to include in this migration, then you can re-scaffold it by running 'Add-Migration First' again.
Füge eine Spalte in einer Tabelle ein und kompiliere.
Add-Migration Layout
Bekomme folgenden Fehler:
Unable to generate an explicit migration because the following explicit migrations are pending: [201612281549111_First]. Apply the pending explicit migrations before attempting to generate a new explicit migration.
ok.
Versuch 2.
Lösche First.
Mein Model hat eine Änderung in einer Tabelle wurde eine Spalte eingefügt.
Führe Add-Migration Test aus.
The Designer Code for this migration file includes a snapshot of your current Code First model. This snapshot is used to calculate the changes to your model when you scaffold the next migration. If you make additional changes to your model that you want to include in this migration, then you can re-scaffold it by running 'Add-Migration Test' again.
Führe Update-Database aus.
Bekomme die Fehlermeldung:
In der Datenbank ist bereits ein Objekt mit dem Namen "Banks" vorhanden.
Klar ich habe ja auch keine neue Tabelle hinzugefügt.
Was mache ich falsch?
In der class Test : DbMigration in Up stehen alle Tabelle welche vorhanden sind.Die Tabelle welche ich geändert habe steht mit den Änderungen.
Ich habe den Link https://msdn.microsoft.com/de-de/data/jj591621.aspx nun schon 1.000 mal durch gearbeitet aber mir ist immer noch nicht klar was ich falsch mache. Den ersten Schritt wo Datenbank und Context gleich sind ist nicht richtig, ich wollte es nur mal testen, weil immer ein Code für die gesamte Datenbank generiert wird.
Danke für jeden Hinweis und Tipp.
Grüße Ingo
Alle Antworten
-
Hallo IngoManthey,
In der Package Manager Console füge Add-Migration Initial -IgnoreChanges ein und dann, update Datenbank von "Initial" file mit Update-Database -verbose. Falls das Problem noch besteht, bitte poste hier den Output von "Update-Database -verbose"
Gruß
Aleksander
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.
-
Hallo Aleksander,
ich konnte eben die erste Migrations erstellen. Es wurde nun auch 201612291512190_InitialCreate.cs erstellt.
Als Ursache habe ich gefunden:
Mein DbContext wird nicht oer app.config konfiguriert sondern über meine Code. ( [DbConfigurationType(typeof(DomainConfig))]
[DbConfigurationType(typeof(DomainConfig))] public class MaDBContext : DbContext {
Das klappt auch prima ich kann jederzeit zwischen SQL-Server und MySQL-Server wechseln.
Nur im Paket-Manager-Konsole funktionierte es nicht.
Ich habe dann in der App.Config
<entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> <providers> <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> </providers> </entityFramework>
Diese Sektion eingetragen und den DbConfigurationType gelöscht. Danach wurde bei Add-Migration nicht nur die Configuration Klasse erzeugt sondern auch die Datei _InitialCreate.cs
Jetzt warte ich bis ich die nächste Änderung im Schema machen muss und hoffe das es dann auch weiter klappt.
Danke für die Hilfe
Grüße Ingo
P.S. Wenn jemand eine Idee hat, wie man die Migration ohne Eintrag in der App.config machen kann würde ich mich freuen.