簡體   English   中英

手動更新由EF代碼優先創建的數據庫模式

[英]Manually updating a database schema created by EF code-first

我有一個使用實體框架的代碼優先方法創建的數據庫。

目前只有5張桌子。 其中一個表名為Incidents ,支持Incident C#類。 該類只需bool HasClaim增加一個屬性bool HasClaim

我知道,由於數據庫是使用DropCreateDatabaseWhenModelChanges初始化的,所以當我嘗試使用已調整的實體類進行初始化時,我的數據庫數據將被清除,並創建一個新數據庫。

對我來說,進行此類/方案更新的最簡單途徑是什么? (通常,例如:將數據讀入XML,重新創建DB並從C#代碼手動創建新實體。)

PS也許我可以繼續從當前數據庫創建數據庫模型,對其進行調整,調整代碼並重新配置為不再使用代碼優先? 我似乎目前認為代碼優先是一個好習慣,前提是您100%確定在DB投入生產后不更改模型。 但是有了成功的項目,情況就不會如此!

描述

最好的方法是使用EntityFramework.SqlMigrations

您可以修改ModelsDbSet ,並將更改遷移到數據庫中,而無需刪除並重新創建數據庫。

它可以使用NuGet提供

安裝包EntityFramework.SqlMigrations

Scott Hanselman撰寫了一篇不錯的博客文章。

更多信息

看看實體框架遷移: http : //blogs.msdn.com/b/adonet/archive/2012/01/12/ef-4-3-beta-1-automatic-migrations-walkthrough.aspx

另一種方法是僅在調試版本中(針對測試環境)使用DropCreateDatabaseWhenModelChanges策略,然后使用另一個工具對架構更改進行腳本化以升級生產環境。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM