質問: 私はテストとライブDBを持っています。テスト用データベースの移行では、パッケージマネージャコンソールで`Add-Migration ...`と`Update-Database`構文を使用します。しかしライブDBの場合、私はアプリが起動されたときにプログラムでそれをやりたい 次のコードは私を助けませんでした: ``` context.Database.Migrate(); ``` 存在しないテーブルにレコードを追加しようとすると、 `Invalid object name 'TempTenants'`がエラーになります。これは私の新しいテーブルです。 しかし、私は`_EFMigrationsHistory`テーブルを持って`_EFMigrationsHistory`ます。そして、マイグレーションはすべて適用されていないマイグレーションもあります。しかし、私は新しいテーブルを見ません。 テストDBからテーブルを手動で削除し、エラーを再現しようとすると同じ結果が得られます。 したがって、 `context.Database.Migrate();`存在しない場合はすべての移行で新しいdbを作成するだけですが、既存のdbを更新(移行の適用)しないでください。 それをしてもいいですか?それをどうすれば解決できますか?
回答: 何かが間違っているようです。 `__EFMigrationsHistory`テーブルから未適用の移行(レコード)を`__EFMigrationsHistory` (また、テーブル名、主キーと外部キーを元の状態に戻す必要がありました)。 したがって、 `context.Database.Migrate();`既存のデータベースに対してもマイグレーションを適用します。