Entity Framework Code First 修改數據結構

相信剛接觸EF Code First 的時候 都會被他的強大而震撼。

然而隨着開發的深入,肯定會有修改之前結構的情況,例如添加或刪除一個自動,修改一個字段屬性。

EF本身也提供了一些功能:

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

但是如果在生產環境這種方式肯定是不可取的。

最靈活的方式,也是最原始的方式就是放棄EF自動同步的功能,自己修改實體類,自己修改數據庫結構。

操作方法如下:

要先刪除數據庫中dbo.EdmMetadata這張表,或者修改表名也是可以的。
比如我現在往Category類中加一個Status字段
public string Status { get; set; }

然後往數據庫的Categories表中也添加Stauts這個字段,這樣程序還是能照常運行的,不會清空數據庫原有內容。


不過這樣以後,code first的功能就無法使用了,如果你建立新的model,它不再自動幫你創建表了。

當然一個系統已經進入了生產環境,數據結構不可能變動太大,放棄EF的自動同步功能也是值得的。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章