Ich verwende Web Deploy, um eine MVC4-Anwendung zuerst mit EF5-Code zu implementieren. Ich habe ein Veröffentlichungsprofil mit dem Namen "Entwicklung" erstellt, das die Webbereitstellung für Anwendung und Datenbank verwendet, indem ich das Kontrollkästchen "Erste Codemigrationen ausführen" verwende, um Migrationen beim Anwendungsstart auszuführen. Das Verlagswesen hat eine Weile gut funktioniert. Irgendwann habe ich ein neues Veröffentlichungsprofil mit dem Namen "test" hinzugefügt, um es auf einem anderen Server bereitzustellen, der die ftp-Methode der Bereitstellung und keine automatischen Migrationen verwendet. Das funktioniert auch gut. Als ich jedoch versuchte, mein altes "Entwicklung" - Veröffentlichungsprofil erneut zu verwenden, änderte VS die Einstellungen automatisch in den dbDacFx - Weg (Kontrollkästchen 'Datenbank aktualisieren' statt 'Code - Erstmigrationen ausführen') und ich kann es nicht wieder an den wie es war. Es gab einige andere Änderungen am Projekt, während das 'Test'-Profil verwendet wurde, aber nichts, was mir so erscheint, könnte dies verursachen. Weiß jemand, warum VS denkt, dass mein Projekt den Code nicht mehr benutzt?Das Kontrollkästchen Code der ersten Migration ausführen wurde aus meinem Veröffentlichungsprofil entfernt.
Antwort
Hier ist das richtige answer - ist das Problem für mich gelöst. Benennen Sie Ihre Verbindungszeichenfolge genau wie Ihren DbContext, z.
public ApplicationDbContext()
: base("Vocabulary.Domain.ApplicationDbContext", throwIfV1Schema: false)
{
}
Beachten Sie, dass Namen Namensraum wie "Vocabulary.Domain.ApplicationDbContext" enthalten sollte. Vergessen Sie nicht .pubxml Dateien zu aktualisieren:
<ObjectGroup Name="Vocabulary.Domain.ApplicationDbContext" Order="1" Enabled="True">
Diese article beschreibt, wenn veröffentlichen Dialog hat oder nicht die Zecke „Execute-Code Erste Migrationen (läuft auf Anwendungsstart)“
Seit ich diese Frage gestellt habe, habe ich dieses Problem mehrmals in mehreren Versionen von MVC und EF (aller Code zuerst von cource). Speichern Sie die Änderungen nicht in Ihrem Veröffentlichungsprofil, vergewissern Sie sich, dass Sie sich in der Buildkonfiguration "Debug" befinden, die Lösung bereinigen und die Lösung neu erstellen. Wenn das alles fehlschlägt, starten Sie Visual Studio neu und versuchen Sie es erneut. Bis jetzt hat das immer das Problem für mich gelöst.
Das ist mir in VS2013 passiert. Weder das Reinigen der Lösung noch das Neustarten funktionierten. Ich habe versucht, Migrationen zu "reaktivieren" und es hat funktioniert. Obwohl ich eine Fehlermeldung erhalten habe, dass Migrationen bereits im Projekt aktiviert wurden, wurde das Kontrollkästchen "Erste Code-Migrationen ausführen" erneut angezeigt.
Wie "re-enable" Sie Migrationen? – abalter
@abalter nur 'enable-migrations' wieder – gldraphael
läuft enable-migrations funktioniert wieder für mich –
Da nichts erwähnt oben hat funktioniert.
Ich habe die publish profile
von azur und es funktioniert einwandfrei das erste Mal
ich dieses Problem hatte und für mich hatte es eine andere Ursache zu einem ich an anderer Stelle dokumentiert gefunden habe.
Meine Anwendung ist über viele Projekte in einer Lösung verteilt. Da ich Schnittstellen und ein separates Ansichts-/Präsentationsmodell verwende, um Aufrufe an die Datenbank zu übertragen, hatte mein Front-Webprojekt keinen direkten Verweis auf das Projekt, das die DbContext-Klasse enthält. Beachten Sie, dass dies kein Problem für die lokale Ausführung der Site darstellt. Ich tue dies so, dass Entwickler im Frontend-Webprojekt nicht versucht sind, die Präsentationsschicht zu umgehen und direkter in die Datenbank zu gehen.
Durch das Hinzufügen dieser Referenz wurde das Problem sofort behoben, und jetzt sehe ich das Kontrollkästchen Erste Code-Migrationen ausführen in meinem Dialogfeld "Profil veröffentlichen".
- 1. Code ausführen, sobald das Formular zurückgesetzt wurde
- 2. raw_input ("") wurde aus Python entfernt 3.2
- 3. Code ausführen Erste Migration Seed-Methode ohne eine Migration
- 4. Objekt HTMLCollection Fehler in meinem ersten Code
- 5. So wählen Sie ein Kontrollkästchen aus, das angeklickt wurde
- 6. Wie entfernt man das "- -" aus der Protokollierung?
- 7. Ausführen eines Cmd-Befehls aus meinem C# -Code
- 8. Warum wurde das Paket "epicalc" aus CRAN entfernt?
- 9. Code ausführen, nachdem die Flaschenanwendung gestartet wurde
- 10. ngNicht aktualisieren, wenn das Objekt entfernt wurde
- 11. Flyway: Skript nach der Migration ausführen
- 12. Warum wurde GetSystemPowerStatusEx aus Windows CE 5.0 Standard-SDK entfernt?
- 13. Warum wurde AnnotationReader aus der JAXB-Referenzimplementierung entfernt?
- 14. Warum wurde der Befehl "artisan serve" aus Lumen 5.2 entfernt?
- 15. Ausführen einer Rake-Aufgabe innerhalb der Migration?
- 16. Feedback zu meinem ersten Objective-C-Code (ein Info Plugin)
- 17. Von der automatischen EF-Migration zur Code-First-Migration wechseln
- 18. Probleme mit meinem ersten Programm
- 19. Abfrage auf Knopfdruck ausführen Wenn das Kontrollkästchen aktiviert ist
- 20. Code ausführen, wenn eines der "if ... else if" ausgeführt wurde?
- 21. DbContext wurde entfernt
- 22. Linux: Entfernen von Dateien aus Ziel, das von der Quelle entfernt wurde
- 23. Entfernt das Sonderzeichen aus Passwort in SoapRequest
- 24. Code ausführen, nachdem ein Fragment zum ersten Mal sichtbar wird
- 25. db.close() wurde entfernt, erhält aber immer noch "Kann diesen Vorgang nicht ausführen, da der Verbindungspool geschlossen wurde" Ausnahme
- 26. Aktivieren Sie alle Kontrollkästchen in der ersten Spalte von gridview?
- 27. jQuery modales Fenster entfernt Elemente aus meinem Formular
- 28. Laravel 5.2 Datenbank aus der Migration erstellen
- 29. iOS Erkennen, wenn App aus Prozess entfernt wurde
- 30. Deaktivieren Sie das Kontrollkästchen, nachdem es aktiviert wurde
Ja, es ist mir auch mehrmals passiert. Und jetzt (nach dem Upgrade auf VS2013), egal wie oft ich VS neu starte, wird "Code-First Migrations ausführen" nicht angezeigt. –
nach dem Lernen fast alles über Datenbankbenutzer, arbeitete ein Visual Studio Neustart für, ich versuchte fast, mich selbst zu töten, weil –
, wenn Sie mit @rafael Problem stecken als versuchen, die Veröffentlichung zu löschen und wieder für mich arbeitete –