Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

初めてのマイグレーション

マイグレーションとは

DBに保存されているデータを保持したまま、テーブルの作成やカラムの変更などを行うためのもの

マイグレーションのやり方(初回)

Entity Frameworkを使ったマイグレーションの方法をメモする

1.Entity Frameworkのインストール

  1. 「ツール」>「Nugetパッケージマネージャー」>「ソリューションのNugetパッケージの管理」
  2. 参照タブの検索欄で「EntityFramework」を入力し、「EntityFramework」を選択
  3. インストールしたいプロジェクトにチェックを付けてインストールをクリック

2.テーブルの作成

Person.cs
public class Product
{
    public int PersonId { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
}

3.Contextクラスの作成

MemberContext.cs
class MemberContext : DbContext
{
    public DbSet<Person> Persons { get; set; }
}

4.マイグレーションの準備

「表示」>「その他のウィンドウ」>「パッケージマネージャーコンソール」
コンソール画面を開き、以下のコマンドを入力

PM> Enable-Migrations

「Migrations」フォルダが作成されることを確認する

5.テーブルの新規作成

パッケージマネージャーコンソールに以下のコマンドを入力

PM> Add-Migration CreatePersons

「Migrations」フォルダの中にファイルが作成されていることを確認
※「202011060546053_CreatePersons」のような「年月日+UTC_入力したファイル名」というファイル名が作成されている

5.テーブルの更新

パッケージマネージャーコンソールに以下のコマンドを入力

PM> Update-Database

無事コマンド発行が成功すると、DBにPersonsテーブルが生成される

マイグレーションのやり方(二回目以降)

既に作成したDBに対して、変更を加えるための方法をメモする

1.テーブルの修正

「Person」テーブルに「Birthday」を追加する

Person.cs
public class Product
{
    public int PersonId{ get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
    public DateTime Birthday { get; set; }
}

2.更新用のマイグレーションファイルを作成する

パッケージマネージャーコンソールに以下のコマンドを入力

PM> Add-Migration ChangePersons_Birthday

3.テーブルの更新

パッケージマネージャーコンソールに以下のコマンドを入力

PM> Update-Database

無事コマンド発行が成功すると、Personsテーブルに「Birthday」が追加される

kentem
建設土木現場を支援するソフト・サービスを開発・販売しています。
https://kentem.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away