2013-01-19 32 views
0

我正在開發一個使用ASP.NET MVC4 CodeFirst方法的簡單網站。該網站建立在能夠註冊,發佈帖子等用戶的基礎上。現有的UserProfile類已修改爲適應其他領域(例如:名字,姓氏等)。ASP.NET MVC4 - 自定義默認帳戶模型和控制器時出錯

當我運行的網站我有一個類似的錯誤:

Invalid column name 'FirstName'. 
Invalid column name 'LastName'. 
Invalid column name 'Phone'. 

我紅認爲,這是因爲隨着模型更新不更新數據庫。所以我在的Global.asax上設置了以下內容,意圖始終刪除數據庫(至少在我弄明白之前)。

protected void Application_Start() 
    { 
     Database.SetInitializer(new DropCreateDatabaseAlways<UsersContext>()); 
     //Other default generated stuff below... 
    } 

我也tryed的DropCreateDatabaseIfModelChanges,但是這兩種方法並沒有刪除數據庫。

這不可能嗎?爲什麼?難道我做錯了什麼?

我相信可以將信息存儲在不同的表中並將其鏈接到此,但我更願意將它保存在一張表中。

而且它是一個壞主意,添加UserProfiles到網站上下文(可以說:DatabaseContext(其中有其他實體,如文章,評論等),改變AccountsController使用DatabaseContext而不是UsersContext

謝謝?

回答

1

有你的包管理器控制檯運行Enable-Migrations?你應該看到一個遷移文件夾在你的項目中,有configuration.cs文件前進,確保你已啓用自動遷移。

public Configuration(){ 
    AutomaticMigrationsEnabled = true; 
    //if you drop columns - consider this carefully... 
    AutomaticMigrationDataLossAllowed = true; 
} 
相關問題