2013-07-15 42 views
2

我剛開始研究如何使用EF遷移,但已經遇到了問題。假設兩位開發人員使用一種解決方案,但他們處於不同的時區。實體框架遷移(不同時區)

  1. Dev1創建名爲「201307151309449_7.cs」的基於代碼的遷移並提交它。
  2. Dev2在另一個時區(-3小時),他從源代碼控制中獲取最新版本。
  3. Dev2執行'Update-Database'命令。在這一步中,Dev2具有與Dev1相同的DB結構。
  4. Dev2進行了一些更改並創建了名爲「201307151010092_8.cs」的遷移。

帶有'_7'前綴的遷移早於'_8'創建,但Visual Studio存儲像首先創建的'201307151010092_8'遷移。因此,基於代碼的遷移「201307151010092_8」不會包含Dev2爲自己所做的任何更改(方法'Up'和'Down'是空的,我不知道爲什麼會這樣)。

有人可以向我解釋如何在這種情況下(不同的時區)使用EF遷移?

回答

0

這聽起來像一個EF錯誤,應該作爲一個問題報告,如果它確實存在於EF6中。

我能想到的一種解決方法可以應用於一些協調。這就是讓Dev2刪除'201307151309449_7'遷移,然後生成他們的新遷移,幷包括他們自己的變化和Dev1的變化。 Dev1和Dev2(以及潛在的其他人)需要確保他們的數據庫通過update-database-TargetMigration恢復到「201307151309449_7」之前的狀態。

另一個明顯的解決方法是讓Dev2等待3個小時!