2014-01-27 76 views
10

期望的結果:實體框架6型號第一次遷徙

使用模型與實體框架第一種方法,並允許部署數據庫/模式的變化來自動基於模型的變化來完成。自動生成模式差異腳本以實現平滑遷移。

有沒有辦法在EF6模型中執行遷移?我可以看到所有的代碼第一次遷移主題,但沒有太多關於Model First。

選項我看到迄今:

回答

11

據我所知,還沒有實體框架模型的自動遷移。

我們的做法是:

  1. 從模型中創建一個新的數據庫。
  2. 創建一個diff腳本將舊數據庫遷移到新數據庫。
  3. 驗證此差異腳本是否確實正確。 總是仔細檢查你的自動化工具創建了什麼

我們首次將Open DB diff用於我們的模型第一次遷移。之後,我們切換到Redgate's SQL compare,因爲它產生了更可靠的遷移。 根據我們的經驗,DbDiff生成了大量不必要的SQL,因爲它困擾着列的順序,並且還有其他一些問題,如外鍵不斷丟失和重新添加。除此之外,它仍然做得很好,但我們必須對其生成的SQL進行大量的雙重檢查。

+0

我們最終選擇了這種方法,因爲它的方式非常合理。我們在本地PC上有開發數據庫,​​可以隨意做任何事情,然後將更改傳播到測試數據庫,然後傳播到生產環境。您所描述的工作流程非常適合這種順序,至今看起來是一個非常好的解決方案。標記爲在這一點上回答。 – Levent