1

Entity Framework Code First で MVC プロジェクトを作成しました。プロジェクトには適切なサイズのデータ​​ベースがあり、本番環境にあります。現在、データベースのサイズ (テーブル数) をほぼ 2 倍にする大規模な新しい機能セットを追加しています。開発中は、POCO オブジェクトと Fluent モデル構築ロジックに多くの調整を加える予定です。しかし、私はほとんど変更を加えていないので、100 回の「移行」はしたくありません。

データベース ファーストを行っていた場合は、データベースを変更し、そこからモデルを繰り返し作成します。終了したら、最終的なスキーマを以前のスキーマと比較し、変更スクリプトを作成できました。

新しい一時的な DbContext を作成し、そこに新しいテーブル用の Code First モデルを開発して、反復しながら新しいデータベースをゼロから再作成する傾向があります。そして、満足のいくモデルができたら、それをメインの DbContext に移動し、1 つの大きな移行を作成します。でもこれは痛そうです。また、新しいオブジェクトと既存のオブジェクトの間に何らかの関係を確立する必要があるという問題もあります。

したがって、私の具体的な質問は、Code First データベースに多くの小さな変更を加えるにはどうすればよいかということです。

  1. 既存のデータベースを再作成せずに
  2. そして、テストしたい変更ごとに(永続的な)移行を作成せずに
4

1 に答える 1

1

Code First でプロジェクトを作成したと言うので、データベースをリバース エンジニアリングする必要はないと思います。

既存のデータベースを再作成しないようにするには、MigrateDatabaseToLatestVersion データベース初期化子を使用します

変更ごとに永続的な移行を作成しないようにするには、マイナーな変更をそれぞれロールバックしてから、強制的に移行を再実行します。

ロールバックするには:Update-Database -TargetMigration 0

移行を強制的に再実行するには:Add-Migration "OneMigrationToRuleThemAll" -Force

一方で....

小さなことで汗をかくのをやめるには、何に取り組み、何を無視するかを決める必要があります。

(リチャード・カールソン)

Entity Framework の移行に関するこれらのヒントは、一読の価値があります

于 2013-11-01T09:22:04.237 に答える