【C#】Entity Framework Coreでモデルを定義してデータベースを作成する

Entity Framework Core (EF Core) では、C# のクラス(POCO)をデータベースのテーブルに見立てて操作します。このクラスを「エンティティ(モデル)」と呼びます。

今回は、簡単なメッセージ投稿モデル(Post)を作成し、それを管理する DbContext を定義して、実際にデータベース(SQLite)を生成するまでの手順を解説します。

目次

1. モデル(エンティティ)の定義

まずはデータベースのテーブルに対応するクラスを作成します。 EF Core の命名規則に従い、プロパティ名は PascalCase(先頭大文字)にするのが一般的です。また、Id または クラス名Id という名前のプロパティは、自動的にプライマリキーとして扱われます。

Post.cs

using System;

public class Post
{
    // プライマリキー(自動採番)
    public int PostId { get; set; }

    // メッセージ内容
    public string Message { get; set; }

    // 送信日時
    public DateTime SentTime { get; set; }
}

2. DbContext の定義

次に、データベースとのセッションを表す DbContext クラスを継承して、独自のコンテキストクラスを作成します。 ここで DbSet<T> プロパティを定義することで、そのクラスがデータベースのテーブルとして操作可能になります。

ExampleDbContext.cs

using Microsoft.EntityFrameworkCore;

public class ExampleDbContext : DbContext
{
    // このプロパティ名(Posts)がテーブル名になります
    public DbSet<Post> Posts { get; set; }

    // データベース接続の設定
    // ※実務では接続文字列を appsettings.json から読み込むことが多いですが、
    // ここでは簡略化のために直接記述しています。
    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        // SQLiteを使用する設定
        optionsBuilder.UseSqlite("Data Source=example.db");
    }
}

3. データベースの作成 (マイグレーション)

コードの定義ができたら、EF Core のツール(dotnet ef)を使って、クラス定義を実際のデータベースに反映させます。

マイグレーションファイルの作成

まず、現在のモデルの状態を記録する「マイグレーション」を作成します。InitialCreate は任意の名前です。

dotnet ef migrations add InitialCreate

実行すると、Migrations フォルダが作成され、テーブル作成のためのコードが自動生成されます。

データベースへの反映

次に、作成されたマイグレーションを適用して、実際にデータベースファイル(example.db)を生成します。

dotnet ef database update

これで、Post クラスに対応した Posts テーブルを持つ SQLite データベースが作成されました。以降は ExampleDbContext を通してデータの追加や取得が行えるようになります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次