我使用實體框架代碼首先遷移了一段時間了,現在在一個全新的項目,他們已經在應用程序的主幹線版本工作正常爲止。實體框架遷移 - 管理分行
然而,我們現在是在在正在創建分支,因爲我們有多個工作正在進行該項目的一個點。作爲最後一部分工作的一部分,我們意識到跨分支機構遷移可能會產生問題 - 所以我的問題是人們如何找到最好的管理方式?
例如(我已經明顯地簡化了這些爲討論起見):
A分支: 顯影劑1增加了一個「添加-UserDateCreated」的遷移增加了一個字段向用戶實體。遷移文件包含添加字段的代碼,並且具有當時的模型狀態。
科B: 顯影劑2增加了一個「添加-UserMiddleName」遷移這增加了另一個字段的用戶實體。遷移文件包含添加字段的代碼,並且當時具有模型狀態(但顯然沒有在其他遷移中添加字段)。
這些遷移做工精細的分公司,但是當你把它們合併到主幹,您遇到:
- 你不能只是保持個體遷移文件,存儲的模型狀態不會是正確的。例如,'Add-UserMiddleName'遷移應該添加'Add-UserDateCreated'字段的模型狀態 - 但它不會。
- 您不能遷移合併成一個文件,你打了同樣的問題*
這意味着要忠實地避免這些問題的唯一方法是對數據庫的不同副本進行工作的每一個分支,在合併到主幹時忽略遷移,並且在合併完成時(在數據庫的主幹版本上)添加一次主遷移 - 但是那麼您可能最終在一次遷移中出現大量更改一個好主意(也會丟失您在遷移課程中編寫的任何自定義代碼)。
那麼其他人怎麼處理這種情況呢?我很想知道別人的意見。
*我很好奇,是什麼問題,這實際上在現實世界中造成的,如果有誰知道?
感謝馬丁 - 這是做這件事的另一種有用的方式。我想我從來沒有想過如何像以前一樣合併這些變化,通常在所有變更合併到主幹後選擇重新構建所有遷移。我想問題是哪個方法更好? :) – stevehayter 2013-05-10 14:03:10