0

私が何度も経験したイベントのシーケンスは次のとおりです。

  • データベースに列を手動で追加する
  • 列に対応する DbContext にプロパティを追加します
  • 移行を生成します (チェックインして他の開発者がデータベースを更新できるようにするため)

現在、コンテキストを更新する必要があるというエラーが発生するため、コンテキストを使用できない状態になっています。

ただし、列が既に存在するため、更新するとエラーが発生します (列が重複しています)。

それで、私は基本的に「間違ったことをしている」だけですか、それともパッケージマネージャーに「データベースを手動で更新したところ、最新の状態になりました」というコマンドがありますか?

4

2 に答える 2

2

起こっていることは、移行がまだ適用されていることを EF が認識していないことです。

私が行ったことは、パッケージマネージャーコンソールで次のように入力することです:

update-database -v -f -script

これにより、移行用のスクリプトが生成されます。次に、生成された SQL の最後の行をコピーして、データを __MigrationHistory テーブルに追加し、手動で実行します。次のようになります。

ここに画像の説明を入力

これにより、コードがデータベースと同期されます。

于 2012-10-10T00:55:50.053 に答える
0

これが何度も追加されるのを防ぐには、データベースに列を手動で追加するのではなく、 update-database を使用して更新してください。

正しい手順は次のとおりです。

  • 列に対応する DbContext にプロパティを追加します
  • 移行を生成する
  • update-database を実行します
于 2012-10-11T00:37:42.850 に答える