2

AutomaticMigrationsを無効にしたときに、それを理解したと思いました。

I Update-Database 次に、新しい列名を DAL クラスに追加します。

次に、Add-Migration を実行します

しかし、私はナンセンスのループに巻き込まれています。

Update-Database を実行すると、次の処理が行われます ... 明示的な移行の適用: [現在の移行のリスト]。

次に、移行ごとにこの行。明示的な移行を適用しています: [id]

次に、モデルが最新ではないことを警告します。したがって、Add-Migration を実行するとエラーが発生します... 次の明示的な移行が保留中のため、明示的な移行を生成できません: [適用されたのと同じリスト]

なんてこと?

4

1 に答える 1

1

次の手順でこれを解決しました。

  1. DAL プロジェクトが更新しているデータベース ファイルを削除します。
  2. 問題のある移行を削除します。// 問題のある列またはテーブルをコメントアウトします。
  3. Update-Database を実行します。
  4. 変更のコメントを外します。
  5. 追加移行
  6. データベースを更新する
  7. ランタイムチェック。
  8. チェックイン

この問題に遭遇した場合は幸運を祈ります。

起動時間を短縮するためにイニシャライザを明示的に呼び出すコードを追加したときに、さらに問題が発生しました。その後、データベースの更新を行うたびに...コンテキストクラスを使用し、初期化子を実行しようとして失敗しました。

Code-First は正しい方向への良い一歩ですが、これらすべての慎重なシナリオがあります。

于 2013-11-05T16:40:48.577 に答える