2012-12-01 126 views
4

我使用MVC 4與EF Code First 5.我有點新,所以我只是從默認模板創建一個項目。DropCreateDatabaseIfModelChanges()不起作用

該項目正在對數據庫發言並且記錄持續存在。我們在工作時使用了DropCreateDatabaseIfModelChanges,並試圖讓它使用默認的模板項目。我發現SetInitializer叫倒在SimpleMembershipInitializer爲模板項目,並已嘗試使用這樣的:

  Database.SetInitializer<NPContext>(null); 

它不工作

  Database.SetInitializer<NPContext>(new DropCreateDatabaseIfModelChanges<NPContext>()); 

代替 - 信息仍然會堅持到數據庫,但不會刪除並使用新模式重新創建。我也嘗試在Application_Start()中設置初始值設定項。處於調試模式時,不會出現崩潰或可見錯誤。

我對設置我正在使用的工具並不是非常熟悉,而且我嘗試過設置數據庫權限(我正在使用SQLEXPRESS,但確實有SQL Management Studio 2012),但不確定用戶會是什麼或者設置了什麼權限。

任何人都可以引導我走向正確的方向嗎?我正在旋轉我的輪子,並在這一點上浪費了幾個小時。

回答

0

下面是我如何在我的應用程序中使用Application_Start()來做到這一點。首先,我有一個處理播種我的數據庫時,它被重新初始化器類:

public class MyContextInitializer : DropCreateDatabaseIfModelChanges<MyContext> 
{ 
    // Seed your database or anything else you want to do 
} 

然後在Application_Start()設置你的初始化:

Database.SetInitializer(new MyContextInitializer());