1

從頭開始製作一個全新的項目。這意味着數據模型是不斷變化的,加倍是因爲事情不可避免地沒有像應該那樣進行計劃。模型課程正在創建並定期更改。實體框架代碼優先 - 開發策略

該計劃是使用EF的最新版本,其中包含所有整潔的代碼優先的東西。但是我們總是跳過框架在添加或更新表格方面的限制。初始化選項似乎只允許完全刪除和重新創建數據庫,這並不是很理想。

我已經看過遷移。但是,這似乎是一把大錘來打擊一個堅果:我們不需要詳細介紹每一個小的變化,並用新的遷移腳手架進行更新。

有沒有更好的策略來處理這個問題?例如,我開始編寫一些單元測試,用一些測試數據預先填充其中一個上下文,但是由於這會導致整個Db下降並重新創建,因此會導致所有其他上下文出現問題。或者可能使用自定義的初始化工來爲我們播種數據?我們如何輕鬆地將這些排除在生產代碼之外?

我們也想知道也許放棄代碼優先和回到EDMX圖。至少這種改變會導致更新的SQL命令可以直接針對數據庫運行。

任何建議感激地收到。

+0

您可以在不丟棄的情況下遷移Db。如果這個模型是在Flux中的話......早期的種子對我來說似乎是公平的。 –

回答

1

我認爲,恕我直言,即:

  • 的數據庫架構至少必須與你的模型,你應該/必須詳細說明每一個變化,代碼首先遷移允許和跟蹤隨着時間的推移

    的變化
  • 代碼首先遷移也使遷移數據庫模式爲你

  • 代碼第一次遷移,您還可以產生SQL,使您可以遷移模式

由於這些原因,代碼首先是一樣好(如果不是更好)作爲EDMX方法

請花幾分鐘的時間來實現其他http://msdn.microsoft.com/en-us/data/jj591621.aspx

一個點上,總是恕我直言,在一個完美的世界,如果你單元測試你的模型的業務,你不應該需要DAL,使用泛型集合。請注意linq到object和linq到實體的不同比例,例如關於區分大小寫。