2010-11-29 60 views
1

我在我的.net MVC 2.0項目中使用實體框架4代碼優先,並且我很難與我的實體進行數據庫同步。我想要的是我可以調用的一個頁面,例如:/ DB/Recreate,它會刪除我當前的數據庫並重新創建一個空的數據庫。目前在我的Global.asax我有如何使用EF4代碼先測試數據庫

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

      AreaRegistration.RegisterAllAreas(); 

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

我嘗試切換我的數據庫初始化在我的行動,但我真的不知道,因爲它應該已經被初始化,我使用正確的方法:

 Database.SetInitializer(new AlwaysRecreateDatabase<CorpiqDb>()); 
     var bidon = _session.All<Admin>(); 
     Database.SetInitializer(new CreateDatabaseOnlyIfNotExists<CorpiqDb>()); 
     bidon = _session.All<Admin>(); 

我真的不知道該怎麼做,謝謝你的幫助!

回答

2

好,我找到了一個解決方案:

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

這將降低我的數據庫,並創建一個新的,反映最新的車型,我甚至可以用一些數據我試種子數據庫。

+0

感謝您發佈您的答案。 – 2011-02-21 23:38:13

相關問題