2010-11-29 9 views
1

Ich benutze Entity Framework 4 Code zuerst in meinem .net MVC 2.0-Projekt und ich habe harte Zeiten, um meine DB-Synchronisierung mit meinen Entities zu bekommen. Was ich will, ist eine Seite, die ich aufrufen kann, als Beispiel:/DB/Recreate, das würde meine aktuelle DB fallen lassen und eine leere neu erstellen. Zur Zeit in meinem global.asax habe ichWie erstelle ich DB mit EF4-Code zuerst für Test

protected override void OnApplicationStarted() 
     { 
      Database.SetInitializer(new CreateDatabaseOnlyIfNotExists<CorpiqDb>()); 

      AreaRegistration.RegisterAllAreas(); 

      RegisterRoutes(RouteTable.Routes); 
      RegisterAllControllersIn(Assembly.GetExecutingAssembly()); 
     } 

Ich versuche, meine Datenbank initializer in meiner Aktion zu wechseln, aber ich bin wirklich nicht sicher, da sie bereits initialisiert werden sollen, dass ich den richtigen Ansatz bin mit:

Ich weiß nicht wirklich, wie man das macht, danke für die Hilfe!

Antwort

2

Ok ich eine Lösung gefunden:

var dbContext = new CorpiqDb().Database ; 
dbContext.Delete(); 
dbContext.Initialize(); 
dbContext.EnsureInitialized(); 
Database.SetInitializer(new CreateDatabaseOnlyIfNotExists<CorpiqDb>()); 

Dies wird meine Datenbank löschen und eine neue erstellen, die die neuesten Modelle reflektieren, ich kann auch die Datenbank mit einigen Daten für meinen Test Saatgut.

+0

Vielen Dank für Ihre Antwort. –