web-dev-qa-db-ja.com

コードの最初の移行-保留中のモデル変更を表示する方法は?

私はコードファーストマイグレーションを使用しています。新しい移行を足場する前に、パッケージマネージャーコンソールに保留中のモデル変更を表示する方法はありますか?

27
Andrzej Gis

移行を足場する前にモデルで保留中の変更を表示する方法を知る方法はありませんが、Add-Migrationを使用して移行を足場にしない理由は考えられないため、保留中の変更を移行ファイル。これらの変更をデータベースに適用する必要はなく、足場による移行はいつでも削除できます。

移行がスキャフォールドされると、Update-Database -Scriptエンティティフレームワークを使用すると、変更を直接実行するのではなく、SQLスクリプトが生成されます。

get-help EntityFrameworkを使用して、パッケージマネージャーのEntityFrameworkに関するヘルプを取得できます

また、以下を使用して、Update-Databaseコマンドに関するヘルプを取得できます。

get-help Update-Database

get-help Update-Database -detailed

get-help Update-Database -full

30
Colin

受け入れられた回答は、データベースに適用する前に、すでに足場を組んだモデル変更のSQLを取得する方法を示しています。

元の質問と見なされたモデルは、足場前の変更(つまり、最後の「add-migration」から次の「add-migration」を実行する前のモデルの変更...)

その答えに私はただ言います:とにかく足場、それはあなたにあなたのプレビューを与えます。つまり、「add-migration preview」または類似のものを実行すると、対象のモデル変更を含む足場マイグレーションが作成されます。次に、ソリューションから削除するだけで...

ここでのポイントは、実際に「実行」をすばやく元に戻すことができるのに、「プレビュー」する必要がないということです。ソリューションのマイグレーションセクションからスキャフォールディングされたマイグレーションバージョンを削除すると、何かが壊れる可能性があると考える人もいますが、十分にサポートされているわけではありません。

足場をテストしてから、Colinが彼の回答で提案するSQLスクリプトを作成して、完全なSQLを取得することもできます。この時点ではまだ何も行われていないため、必要に応じて移行バージョンを削除してください。

69
TCC