2017-04-08 224 views
0

我正在使用支持安裝,刪除插件的asp.net mvc應用程序。實體框架代碼優先和現有數據庫

當我想安裝一個新的插件我有一個安裝方法註冊新的路線和...

對於數據庫,我使用代碼第一種方法用於創建數據庫,每個插件有它自己的上下文類。

我的問題是:當我想要安裝一個新插件時,我需要在現有數據庫中創建額外的表,或者在數據庫尚不存在的情況下創建一個新的數據庫。如果這些表已經存在,則不應該創建任何表。

我該如何做到這一點?

在此先感謝

+0

您可以在不丟失數據的情況下遷移您的數據庫。檢查此鏈接http://www.entityframeworktutorial.net/code-first/migration-in-code-first.aspx –

回答

1

的Code First遷移有你要熟悉

  • 添加遷移將腳手架基礎上改變下一個遷移你 對您的模型所做的兩個主要命令自上次遷移創建
  • 更新,數據庫將適用於任何未決遷移到數據庫

開發新應用程序時,數據模型會頻繁更改,並且每次模型更改時都會與數據庫不同步。您已將實體框架配置爲每次更改數據模型時自動刪除並重新創建數據庫。當您添加,刪除或更改實體類或更改DbContext類時,下次運行應用程序時,它會自動刪除現有數據庫,創建一個與模型匹配的新數據庫,並將其與測試數據一起進行種子處理。 在將應用程序部署到生產之前,使數據庫與數據模型保持同步的這種方法運行良好。當應用程序在生產環境中運行時,它通常會存儲要保留的數據,並且每次進行更改時都不想丟失所有內容,例如添加新列。 Code First Migrations功能通過啓用Code First來更新數據庫模式而不是刪除和重新創建數據庫來解決此問題。

我建議看看下面的鏈接,讓你更清楚你的問題。

https://msdn.microsoft.com/en-us/data/jj591621