12

運用マシンで EF Code First Migrations がどのように機能するかを明確にするための支援が必要です。エンティティにアクセスするためのエンティティ クラスと DbContext 派生クラスがいくつかあります。今、私はこれらのいくつかのことを実行したいと思います:

  • アプリケーションの起動時に、データベースが存在しない場合はデータベースを作成する必要があります。
  • 次に、データベース スキーマをモデルに合わせて調整する必要があります。
  • データベースが作成されたばかりの場合、いくつかのインデックスを作成したい。
  • また、データベースが作成されたばかりの場合は、初期データによってシードされる必要があります。
  • これらはすべて、NUGET コマンドや外部ツールを使用せずに自動的に実行する必要があります。

移行に関する記事をいくつか読んだことがありますが、それらは主に NUGET の使用または実行時の純粋な自動データベース更新 (経由MigrateDatabaseToLatestVersion) に焦点を当てています。DbMigrationクラスについては知っていますが、MigrateDatabaseToLatestVersion戦略とDbMigration.

アップデート。
実際、プロジェクトで NUGET を使用することはできず、「手動で」移行する可能性が必要です。

4

1 に答える 1

24

を使用するだけMigrateDatabaseToLatestVersionです。

アプリケーションの起動時に、データベースが存在しない場合はデータベースを作成する必要があります。

MigrateDatabaseToLatestVersionそれをします

次に、データベース スキーマをモデルに合わせて調整する必要があります。

MigrateDatabaseToLatestVersionそれをします

データベースが作成されたばかりの場合、いくつかのインデックスを作成したい。

必要なすべてのインデックスを定義するために、データベースとSqlメソッド インメソッドのコード ベースの初期移行を作成します。Up

また、データベースが作成されたばかりの場合は、初期データによってシードされる必要があります。

再びSql初期移行で使用するかSeed、移行構成でメソッドを使用します

これらはすべて、NUGET コマンドや外部ツールなしで自動的に実行する必要があります。

NuGet とコマンドは、設計時にそれを準備するのに役立ちます (ただし、必要なアセンブリを参照するだけで、すべてのコードを自分で記述できます)。ランタイムには、powershell コマンドは必要ありません。

DbMigratorMigrateDatabaseToLatestVersion使用したくないが、コードからの移行を制御したいシナリオ用です。

于 2012-07-23T09:26:23.473 に答える