Dieser Artikel ist nicht als Leitfaden für die Arbeit mit EF-Migrationen gedacht. Hier finden Sie keine Informationen zum Erstellen. Hier habe ich ein paar rutschige Punkte gesammelt und versucht, sie zu umgehen. Lasst uns beginnen!
Starten Sie die Migrationen beim Start der Anwendung
Kennen Sie den folgenden Code?
context.Database.Migrate();
In diesem Fall führen Sie Migrationen höchstwahrscheinlich zu Beginn des Projekts automatisch durch. Gut oder schlecht, können Sie in den Kommentaren diskutieren. Ich möchte wiederum vor Folgendem warnen.
cmd, PS , , 2 : . - , . - , (sln). .
? , ( ) . , , , , , , . ? , . , , , , , Remove-Migration, , , . , , Remove-Migration. , , ?
, 2 :
.
, . .
-, :
, .
, , .
, Remove-Migration. , . Remove-Migration (csproj). , , , Git ( ) .
, ( ). csproj .
SQL
, , (, , - ) SQL . Script-Migration. . . .
EF Core 3.0 Script-DbContext .
, , , , SQL .
Nute hier, so scheint es, ist einfach. Wir ändern im Wesentlichen etwas, schaffen Migration und freuen uns über das Ergebnis. Das Ergebnis kann jedoch unerwartet sein, wenn Sie ein Feld löschen und ein anderes Feld desselben Typs erstellen müssen. In diesem Fall erstellt der Migrator einen Befehl zum Umbenennen der Spalte in der Datenbank. Alle Daten aus der jeweils gelöschten Spalte werden in die neue übertragen. In diesem Fall können Sie zwei Migrationen erstellen: zum Löschen einer Spalte und zum Erstellen einer neuen. Danach können Sie die Up- und Down-Codes kombinieren und den letzten löschen, damit nicht zwei Migrationen statt einer drohen.
Fazit
Abschließend möchte ich sagen, seien Sie aufmerksam auf die Daten, überprüfen Sie neue Migrationen, denken Sie über sie nach, haben Sie keine Angst, sie zu bearbeiten. Und Sie werden immer noch auf einen nicht offensichtlichen Rechen treten, wenn Sie mit EF arbeiten.