私は移行について学んでおり、最後の移行が作成された後にモデルに加えられた変更を移行ツールがどのように把握するのか興味があります。
たとえば、移行M1を作成し、 command を発行して適用するとしますUpdate-Database
。適用後M1
、新しいプロパティP
をクラスに追加し、コマンドを発行しC
て別の移行M2を作成すると、移行ツールは、モデルに加えた変更 ( M1Add-Migration M2
が作成された後) のみが新しいプロパティの追加であることを何らかの形で把握できます。クラスへ。移行ツールはどのようにそれを把握しますか?P
C
ありがとうございました
返事:
Migrations は__Migrationsテーブルを使用して、既に適用されている移行とまだ適用されていない移行を把握しますが、移行テーブルのデータはハッシュであるため、このテーブルを使用して、ある移行から別の移行に何が変更されたかを把握することはないと思いましたこれは、現在のモデルのメタデータを移行テーブルに保存されている最新のメタデータと比較できるようにするために必要だと思いますか?!
それとも、(現在のバージョンと保存されたバージョンの) ハッシュ値を比較するだけで、どのプロパティが変更されたか、削除されたか、またはエンティティに追加されたかを把握できることを暗示していますか?