1

私は移行について学んでおり、最後の移行が作成された後にモデルに加えられた変更を移行ツールがどのように把握するのか興味があります。

たとえば、移行M1を作成し、 command を発行して適用するとしますUpdate-Database。適用後M1、新しいプロパティPをクラスに追加し、コマンドを発行しCて別の移行M2を作成すると、移行ツールは、モデルに加えた変更 ( M1Add-Migration M2が作成された後) のみが新しいプロパティの追加であることを何らかの形で把握できます。クラスへ。移行ツールはどのようにそれを把握しますか?PC

ありがとうございました

返事:

Migrations は__Migrationsテーブルを使用して、既に適用されている移行とまだ適用されていない移行を把握しますが、移行テーブルのデータはハッシュであるため、このテーブルを使用して、ある移行から別の移行に何が変更されたかを把握することはないと思いましたこれは、現在のモデルのメタデータを移行テーブルに保存されている最新のメタデータと比較できるようにするために必要だと思いますか?!

それとも、(現在のバージョンと保存されたバージョンの) ハッシュ値を比較するだけで、どのプロパティが変更されたか、削除されたか、またはエンティティに追加されたかを把握できることを暗示していますか?

4

2 に答える 2

1

モデルのバージョンをデータベース (移行履歴テーブル) に保存し、現在のモデルをデータベースに保存されているモデルと比較します。

于 2012-11-28T01:34:13.430 に答える