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テーブルも単純になった。
参考:http://densan-labs.net/tech/codefirst/migration.html