2011-05-24 61 views
2

我一直在使用Code-First方法與EntityFramework一起嘗試ASP.NET MVC 3。有幾個我面臨的問題。Nuget CodeFirst EntityFramework遷移或同步數據庫

  1. 如何同步的數據庫,如果架構更改和/或更新我的模型。現在我必須刪除並重新創建數據庫,從而丟失所有數據。是否有可用的包我可以用來自動更新架構。在其中一個演示中,我看到Scott Hanselman使用「EntityFramework.Migration」包。我想這是不公佈的使用。任何替代品?

  2. MvcScaffolding重新創建所有視圖/控制器。如果執行MVCScaffolding並重新創建視圖,有沒有辦法在視圖中保留CSS樣式。

謝謝先進。

+0

檢查了這一點 - [EntityFramework.SchemaCompare(https://github.com/kriasoft/data) – 2011-12-15 14:07:12

回答

1

關於您的數據丟失問題,請使用數據庫initializer類進行調查。每次模型更改時都可以爲數據創建種子數據。我知道這並不理想,但現在我們只有EF 4.1。你可以使用類似Red Gate's SQL tool-belt的東西來保持環境同步。作爲軟件包的一部分,您可以同步數據。您可以隨時備份由SQLToolbelt創建的腳本。

2

有各種工具可以爲數據庫生成更改腳本。就實體框架本身而言,即將推出的EntityFramework.Migrations也將處理此問題。

http://blogs.msdn.com/b/efdesign/archive/2010/10/22/code-first-database-evolution-aka-migrations.aspx

我不知道關於你的第二個問題。我個人不使用自動生成視圖,但是,我相信你應該可以修改T4模板來按照你想要的方式生成你的視圖。

+0

謝謝您的回答。第二個問題更多的是關於在視圖中保留CSS樣式。任何時候腳手架運行它會覆蓋並重新創建視圖,因此添加到視圖的任何CSS類都會被默認的ASP.NET MVC主題覆蓋。 – Amir 2011-05-31 04:08:30

+1

+1進行遷移。說「種子數據庫」太容易了,但這僅僅適用於開發環境。 – 2011-09-22 14:11:45

0

對於腳手架問題,只需更改腳手架模板本身,以便它們包含CSS類。這樣,無論什麼時候你重新腳手架,CSS類將在那裏。

More about this here