2014-09-10 91 views
0

我與實體框架和MySQL使用代碼優先的方法被玩弄,MySql的EF代碼第一次遷移VB.NET

當我從運行我對新創建的MySQL服務器代碼,沒有數據庫等(除默認值)它根據我創建的類創建數據庫和表。我的問題是,我不知道我是否正確地做到這一點是,如果我改變我的模型類,例如添加一個新的屬性,我希望一個新的列被添加到該特定的表。然而,這是不是這樣,而不是我得到一個錯誤

Unknown column: 'Extent1.Email' in 'field list' 

我知道這是因爲我已經做了更改類的,但我的印象是,EF將能夠做出的改變自動到數據庫。

我已經安裝了

EF 6.1.1

MySql.Data 6.9.3

MySql.Data.Entity 6.9.3

回答

0

所有你的數據庫的初始化發生在

Interface IDatabaseInitializer(Of In TContext As System.Data.Entity.DbContext) 

您可以在您的DbContext的構造函數中進行設置使用Entity.Database.SetInitializer()或在您的Web.config<entityFramework><contexts><context><databaseInititalizer>中進行配置。

要獲得在現有數據庫中的新列,你需要或者做必要的遷移(見http://msdn.microsoft.com/en-us/data/JJ591621.aspx),或者您刪除並重新創建每個模型更改數據庫(這是什麼DropCreateDatabaseIfModelChanges實施IDatabaseInitializer呢,看到http://www.adfa.se/Archive/2013/02/01/database-initializers-in-ef-code-first )。

沒有進一步的信息,我建議你做後者。