そもそもなぜテーブルを削除したのですか?再作成しますか?
トリッキーなソリューションに入る前に、 -TargetMigration オプションを使用して、テーブルが作成されている移行の直前の移行にロールバックしようとしましたか? そこにない fk のテーブルまたはインデックスを削除しようとすると、SQL エラーが発生する気がしますが、試してみる価値はあります。このコマンドを使用してこれを行うことができますupdate-database -TargetMigration YourOldMigration
。これにより、移行ファイルの Down() メソッドにあるコマンドを実行して、ターゲットの移行後に適用されたすべての移行がロールバックされます。SQL エラーが発生する場合は、エラーを回避するために Down() メソッドの内容を変更してみてください。気をつけろ。これにより、データが失われる可能性があります。EF がこれについて警告し、気にしない場合。コマンドの最後に -Force を追加してみてください。
代わりに、さらに....
移行は、db スキームを dbcontext/models と比較するだけで計算されるわけではありません。SQL Server Management Studio で SQL Azure データベースを開くと、__MigrationHistory というテーブルが表示されます。自動移行によってデータベースに適用されたすべての移行が保存されます。
開始する前に、最後までお読みください。飛び込む前に考慮すべき要素がいくつかあります。これをまだ操作していないと仮定すると、最初にテーブルを作成した変更セットの行を見つけることができるはずです。その行を削除します。これで、EF 自動移行は、その変更がまだ DB に適用されていないと見なします。update-database を実行すると、再実行が試行されます。
その移行ファイルに他の変更があった場合は、それらも再実行しようとします。これにより、あらゆる種類の sql エラーが発生する可能性があります。その移行の一部でもあったすべての変更を手動でロールバックすることをお勧めします。データの損失が心配ですか? 手動で作成したテーブルにデータをコピーして、終了するまで保存してみてください。移行が機能したら、データを新しいテーブル/列にコピーして戻すことができます。
ダブル代替。開発にそれほど時間をかけず、データ損失についてあまり心配していない場合は、データベース全体を削除して、自動移行で最初から再作成する方が簡単な場合があります。
それがあなたをそこに連れて行くことを願っています