私はEFを初めて使用します。すでに適用されている移行の削除/削除に関する質問です。
適用された移行を削除するとデータベースが同期されなくなるといつも思っていましたが、データベースも自動的に変更されることがわかりました。以下は私のコードです:
まず、Product クラスがあります。
public class Product
{
public string Name { get; set; }
public string Category { get; set; }
}
次に、最初の移行を作成して更新しました
dotnet ef migrations add 初期
dotnet ef データベースの更新
次に、新しいプロパティを Product クラスに追加し、InStockコマンドを発行しました
dotnet ef 移行は AddInStock を追加します
dotnet ef データベースの更新
次に、この適用された移行を削除しようとしました
dotnet ef migrations remove --force
CLI ウィンドウにログ メッセージが表示Alter Table[Product] Drop Column [InStock]され、「InStock」列が削除されたことを意味する が表示されました。
その場合、「適用された移行を削除すると、データベースで非同期の問題が発生する」といつも聞いていたのはなぜですか? 私の場合、データベースは適用された移行の削除で更新され、常にプロジェクトと同期しています。
別の質問は、上記のコードは教科書からのものであり、私はそれに従って学習します。教科書には、強制削除を発行すると、次のログメッセージが表示されると書かれています。
Removing migration '<timestamp>_AddInStock' without checking the database. If this
migration has been applied to the database, you will need to manually reverse the changes
it made.
Removing migration '<timestamp>_AddInStock'.
Reverting model snapshot.
しかし、問題が発生したときにこのメッセージが表示されなかったのはdotnet ef migrations remove --forceなぜですか?