[英]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
您可以修改Models
和DbSet
,並將更改遷移到數據庫中,而無需刪除並重新創建數據庫。
它可以使用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.