EntityFremework (一部Core)

Entity Framework

マイグレーション

マイグレーションtoolのインストール

"Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final",

 

 

Enable-Migration -ProjectName [p1]
マイグレーションできる状態に初期設定を指定したプロジェクトに追加する
具体的にはMigrations フォルダの生成と configure.cs の追加

 

Add-Migration [migrationName] -ProjectName [p1] -StartupProject [p2]
更新差分を作成する
[migrationName] : 更新内容を示す名前(クラス名にもなる)
[p1] : 対象プロジェクト
[p2] : 接続先(ConnectionString)を判断するプロジェクトの指定

 

Update-Database -ProjectName [p1] -StartupProject [p2]
[p1] : 対象プロジェクト
[p2] : 接続先(ConnectionString)を判断するプロジェクトの指定

 

Update-Database -TargetMigration:[target] -ProjectName [p1] -StartupProject [p2]
[target] : 更新対象とする更新差分名 (ダウングレードを指定可能)
 指定がない場合は最新版までの更新を進める

 

*****************************************************************
*EntityFrameworkのモデルを定義しているDLLプロジェクトと、そのDLLを使用しているアプリケーションプロジェクトでモデル更新を行う場合

 例 プロジェクト名 : ApplicationProject : アプリ側プロジェクト
   プロジェクト名 : LibraryProject :DLL側プロジェクト
   
Enable-Migration -ProjectName LibraryPrject

まずはLibraryProject にマイグレーションの準備を行う

 Add-Migration [migrationName] -ProjectName LibraryProject
*更新差分を記録

*アプリ側DBに更新して使用するとき
Update-Database [migrationName] -ProjectName LibraryProject -StartupProject ApplicationProject

(AppricationProjectの接続文字列を見てLibraryProjectのDbContextとDBを比較してDBを更新する)

******************************************************

 

EntityFrameworkCore では、最初にenable-Migration を入力する必要がなくなった。
初めて Add-Migrationコマンドを実行したときに、Migrationsフォルダが生成される。

Migrationの管理をおこなっている__EFMigrationsHistoryテーブルも単純になった。

 

f:id:inopriv:20161226232519j:plain

参考:http://densan-labs.net/tech/codefirst/migration.html