2

EF 移行の使用方法を調査し始めたばかりですが、すでに問題に直面しています。2 人の開発者が 1 つのソリューションで作業しているが、彼らは異なるタイム ゾーンにいるとします。

  1. Dev1 は、'201307151309449_7.cs' という名前のコードベースの移行を作成し、コミットします。
  2. Dev2 は別のタイム ゾーン (-3 時間) にいて、ソース管理から最新バージョンを取得します。
  3. Dev2 は、'Update-Database' コマンドを実行します。このステップでは、Dev2 は Dev1 と同じ DB 構造を持っています。
  4. Dev2 はいくつかの変更を行い、'201307151010092_8.cs' という名前の移行を作成します。

プレフィックスが '_7' の移行は '_8' より前に作成されましたが、ビジュアル スタジオは '201307151010092_8' 移行を最初に作成されたように保存します。その結果、コードベースの移行 '201307151010092_8' には、Dev2 が自分のために行った変更は含まれません (メソッド 'Up' と 'Down' は空で、なぜそうなのかわかりません)。

そのような場合 (タイムゾーンが異なる場合) に EF 移行を使用する方法を誰かに説明してもらえますか?

4

1 に答える 1

0

これは EF のバグのように聞こえますが、実際に EF6 にまだ存在する場合は、問題として報告する必要があります。

私が考えることができる 1 つの回避策は、いくつかの調整で適用できます。つまり、Dev2 に '201307151309449_7' 移行を削除してから、新しい移行を生成し、独自の変更と Dev1 の変更の両方を含めるようにします。Dev1 と Dev2 (およびその他の可能性がある) は、update-database -TargetMigration を介してデータベースを「201307151309449_7」より前の状態に戻す必要があります。

もう 1 つの明白な回避策は、Dev2 を 3 時間待機させることです。

于 2013-12-01T13:46:08.950 に答える