Code-first zwingen, eine nicht existierende Datenbank immer zu initialisieren?

Manchmal lösche ich meine Entwicklungsdatenbank und führe meine EF-Code-First-Anwendung aus. Ich bekomme den Fehler:

Die vom Login angeforderte Datenbank "AssessmentSystem" kann nicht geöffnet werden. Die Anmeldung ist fehlgeschlagen. Anmeldung für Benutzer 'AssessmentAdmin' fehlgeschlagen.

Ich denke das liegt daran dasDbContext Führt die DB-Initialisierungslogik nur "einmal pro AppDomain bei erstmaliger Verwendung des Kontexts" ausdiese Seite sagt. Das bedeutet, dass ich den IIS-Anwendungspool neu starten muss, damit EF meine Datenbank neu erstellt, wenn ich sie lösche.

Kann ich den DB-Initialisierungscode auf irgendeine Weise ausführen lassen?jedes Mal Ich versuche auf die Datenbank zuzugreifen? Es wird also immer überprüft, ob die Datenbank vorhanden ist. Wenn nicht, erstellen Sie sie, anstatt zu versuchen, sie zu öffnen, auch wenn dieselbe AppDomain verwendet wird, die zuvor auf die Datenbank zugegriffen hat, die ich jetzt gelöscht habe.

Beachten Sie, dass ich möchte, dass diese Initialisierungsprüfung durchgeführt wirdjede Abfrage, also sogar damit, dass es gemacht wirdApplication_Start ist nicht oft genug; im Idealfall möchte ich in der Lage sein, einige DB-Daten zu laden, die DB zu löschen und dann einige DB-Daten zu laden, und es würde die DB neu erstellen, ohne dass ich die Anwendung neu starten müsste (im Grunde müsste ich nur die Webseite, die das ist, neu laden lädt einige DB-Daten).

Antworten auf die Frage(1)

Ihre Antwort auf die Frage