2013-03-16 56 views
1

我有以下代碼:如何使用實體框架刪除並重新創建數據庫?

public class DataInitializer : DropCreateDatabaseAlways<DataContext> 
// public class DataInitializer : CreateDatabaseIfNotExists<DataContext> 
// public class DataInitializer : MigrateDatabaseToLatestVersion<DataContext, > 
{ 
    public DataInitializer() 
    { 
     // System.Diagnostics.Debug.Write("Set Initializer\n"); 
     Database.SetInitializer<DataContext>(null); 

     try 
     { 

這似乎並沒有被丟棄我的數據庫和再創造。有人可以給我建議,爲什麼它不這樣做。

回答

1

您正在通過將初始化設置爲null來刪除初始化程序。做以下的初始化(假設DataContext是你的上下文類,從DbContext繼承):

public class DataInitializer : DropCreateDatabaseAlways<DataContext> 
{ 
    // optionally override Seed method 
} 

而在應用程序的開始(第一創建您的上下文之前)調用

Database.SetInitializer(new DataInitializer()); 

也可考慮使用DropCreateDatabaseIfModelChanges初始化。

相關問題