2014-02-10 22 views
2

我們在MVC項目,其中我們正在與相我做開發現在MVC維修器材兩種不同的模式

爲2階段,我們的數據庫更改與模型EDMX文件將按照發展

而且改變,臭蟲和變化將同時固定相我

所以,我怎樣才能保持我的EDMX文件在生產服務器和開發服務器在生產服務器

回答

3

EDMX文件和開發服務器

您需要使用某種像TFS版本控制機制,以及適當的分支與合併,您可以管理的開發和生產的版本 - Read this article on TFS Branching。或者,您也有Git以及其他許多人。

此外,您還必須規劃生產版和開發版之間的數據庫版本遷移。對於那個EF有Migration techniques,你可以使用。

1

您有幾個選擇需要考慮。首先,作爲任何其他更改的先導,像@ramiramilu所說的那樣,讓您的代碼受到源代碼控制。

在此之後,您將面臨如何處理作爲更改所引入的數據庫模式更改的問題。以下是您可以採取的一些路線:

  1. 切換到代碼第一次開發,以便您可以使用數據庫遷移。我在模型優先和代碼優先模式中均使用了實體框架。我的經驗是,減少數據庫遷移功能的麻煩遠遠超過了在代碼和數據庫之間建立映射的可視化模型的任何好處。如果需要,還有一些工具可以從代碼中反向生成模型。
  2. 保持您的模型第一種方法,您可以查看生成SQL更新腳本,以提供部署之間的數據庫變化量。然後將這些文件添加到具有某種命名約定的文件夾中,以指示它們應該應用的順序(例如yyyymmdd-descripion.sql)。生成三角洲的一種方法是使用Visual Studio中的Schema Compare工具。您可以選擇將數據庫的當前開發版本作爲數據庫項目保存在解決方案中,但這裏存在DB項目與從模型生成的數據庫之間不一致的危險。
  3. 再次堅持使用模型第一種方法,您可以在部署時使用例如SQLPackage.exe生成增量SQL腳本。這有一個好處,就是你不需要維護一套delta腳本,並且處理知道某個特定數據庫所在的delta版本的版本的問題。缺點是,如果Delta腳本在運行之前需要進行一些修改(如在設置大量數據或設置不同架構的情況下可能會這樣做),則整體部署時間會變得更長。

總的來說,我真的建議在看選項1,代碼首先發展的選擇。