warum entfernen-migration ausführen meiner app?
Habe ich einige versions-upgrade in den letzten Monaten und jetzt habe ich bemerkt, dass wenn ich "entfernen-migration" zu löschen, die migration, die ich rückgängig gemacht wird, wird es zuerst ausgeführt mein app.
(Ich habe bemerkt, dass, weil wir tun, update-Datenbank innerhalb des Startvorgangs, also holte ich die situation, wo ich nicht entfernen können, Migrationen, da jedes mal, wenn ich versuchte, Sie zu entfernen, migration - es wird automatisch lief der Start, die für die migration der db ist, dann ist es fehlgeschlagen löschen, da Sie sehen es in der db ist).
irgendeine Idee?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Update für ASP.NET Core 2.1
In ASP.NET Core 2.1 die Methoden etwas verändert. Die Allgemeine Methode ist ähnlich wie der 2.0, nur der Methoden-name und die Rückgabe-Typen geändert wurden.
ASP.NET Core 2.0
Wenn Sie auf ASP.NET Core 2.0/EF-Core 2.0 dann gab es eine änderung für eine bessere Abdeckung solcher Fälle, so dass die Befehlszeilen-tools können besser arbeiten.
Es ist ziemlich gut abgedeckt, in diese Ankündigung.
Läuft es auf eine statische
BuildWebHost
Methode, die die Konfiguration der gesamten Anwendung, aber nicht ausführen.Auch mit EF 2.0 ist es nun empfohlen, zu bewegen, die Migrationen an die main-Methode nach
BuildWebHost
aufgerufen wurde. Zum BeispielWo
Migrate
ist eine extension-Methode:Nun Migrationen laufen nur dann, wenn Ihre Anwendung ausgeführt wird. Beim ausführen der Befehlszeilen-tools, nur
BuildWebHost
aufgerufen wird und keine Migrationen angewendet.scope.ServiceProvider.GetRequiredService<MyDbContext>()
IWebHost
zuIWebHostBuilder
.Build()
imMain
Methode, nicht inCreateWebHostBuilder
.GetAwaiter().GetResult()
seit.Result
hat eine andere Ausnahme-Verhalten (wirftAggregateException
eher als Ausnahme). Aber C# 7.0 unterstützt die async-Main Methode, warum nicht einfach das tun, dann können Sie erwarten, es w/o Probleme