Möchten Sie die Datenbank nur automatisch auf die neueste Version aktualisieren, wann und wo immer Ihre Anwendung ausgeführt wird (Entwicklung und Produktion)?
Dies ist möglicherweise keine gute Idee, außer in sehr einfachen Szenarien, in denen Sie wissen, dass Sie der automatischen Migration vertrauen können und eine manuelle Migration der Datenbank (en) nicht möglich ist. Bitte lesen Sie diese Antwort: https://stackoverflow.com/a/15718190/2279059 . Wenn Sie diese Warnung nicht beachten, lesen Sie weiter.
Fügen Sie Folgendes hinzu web.config
:
<entityFramework>
<contexts>
<context type="MyAssembly.MyContext, MyAssembly" disableDatabaseInitialization="false">
<databaseInitializer type="System.Data.Entity.MigrateDatabaseToLatestVersion`2[[MyAssembly.MyContext, MyAssembly], [MyAssembly.Migrations.Configuration, MyAssembly]], EntityFramework" />
</context>
</contexts>
Dies mag beängstigend aussehen, entspricht jedoch im Wesentlichen dem folgenden Code:
Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyContext, Migrations.Configuration>());
Wenn Sie kein Glück haben web.config
, können Sie auch versuchen, diesen Code einzugeben Global.asax
. Ich persönlich bevorzuge die Konfiguration gegenüber dem Code.
Wenn Ihre Konfigurationsdatei übersichtlicher aussehen soll, können Sie auch eine neue Klasse aus der Vorlagenklasse ableiten, MigrateDatabaseToLatestVersion
sodass Sie die kryptische Syntax nicht zum Übergeben von Typargumenten in Ihrer web.cofig
Datei verwenden müssen:
public class MyDatabaseInitializer : public MigrateDatabaseToLatestVersion<MyContext, Migrations.Configuration> {}
Dadurch wird ein Datenbankinitialisierer festgelegt, der die Datenbank automatisch auf die neueste Version aktualisiert.
(Quelle und weitere Details: http://www.ralphlavelle.net/2012/09/entity-framework-code-first-webconfig.html )