スポンサーリンク

.NETのEntity Framework入門|初心者でもわかるORMの基本と使い方

はじめに

.NET開発において、データベース操作は必須のスキルです。
その中でも「Entity Framework(エンティティフレームワーク)」は、マイクロソフトが提供するORM(Object-Relational Mapping)ツールとして非常に人気があります。
本記事では、Entity Frameworkの概要から基本的な使い方まで、初心者でもわかりやすく解説します。

Entity Frameworkとは?

Entity Framework(以下EF)は、データベースのテーブルとC#のクラスを自動的にマッピングしてくれるORMライブラリです。
SQLを書かずに、C#のコードでデータ操作ができるため、開発効率が大幅に向上します。

EFは以下の特徴を持ちます。

  • データベースの操作をオブジェクト指向で扱える
  • 複雑なSQLを自動生成し、開発者の負担を軽減
  • コードファースト、データベースファーストの両方に対応
  • LINQで直感的なクエリ記述が可能

Entity Frameworkの種類

EFには主に2つの種類があります。

1. Entity Framework 6(EF6)

  • .NET Framework向けの従来版
  • 豊富な機能が揃っている
  • レガシーシステムや既存プロジェクトでよく使われる

2. Entity Framework Core(EF Core)

  • クロスプラットフォーム対応の軽量版
  • .NET Core / .NET 5以降で利用可能
  • モダンな設計でパフォーマンスも優れている
  • 今後はこちらが主流になる

本記事では、今後の主流であるEntity Framework Coreの基本的な使い方を中心に紹介します。

Entity Framework Coreの導入方法

プロジェクトにEF Coreを追加する

まずは、.NETのプロジェクトにEF Coreのパッケージを追加します。
以下のコマンドを使用します。

今回はSqlServerを選択していますが、他のDBにも対応しています。

dotnet add package Microsoft.EntityFrameworkCore
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.Tools
  • Microsoft.EntityFrameworkCore:EF Coreの本体
  • Microsoft.EntityFrameworkCore.SqlServer:SQL Server用プロバイダー
  • Microsoft.EntityFrameworkCore.Tools:マイグレーションやツール用

モデルクラスの作成

EF Coreでは、まずデータベースのテーブルに対応するモデルクラスを作成します。
例えば、顧客情報を表すCustomerクラスは以下のようになります。

public class Customer
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Email { get; set; }
}

このクラスが、データベースの「Customers」テーブルに対応します。

DbContextの作成

DbContextはデータベースとのやりとりを管理するクラスです。
以下のように作成します。

using Microsoft.EntityFrameworkCore;

public class AppDbContext : DbContext
{
    public DbSet<Customer> Customers { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer("Server=localhost;Database=MyAppDb;Trusted_Connection=True;");
    }
}
  • DbSet<Customer>がテーブルの役割
  • OnConfiguringで接続文字列を設定

基本的なCRUD操作

データの追加(Create)

using(var context = new AppDbContext())
{
    var customer = new Customer { Name = "山田太郎", Email = "yamada@example.com" };
    context.Customers.Add(customer);
    context.SaveChanges();
}

データの取得(Read)

using(var context = new AppDbContext())
{
    var customers = context.Customers.ToList();
    foreach(var c in customers)
    {
        Console.WriteLine($"{c.Id}: {c.Name} - {c.Email}");
    }
}

データの更新(Update)

using(var context = new AppDbContext())
{
    var customer = context.Customers.First();
    customer.Email = "newemail@example.com";
    context.SaveChanges();
}

データの削除(Delete)

using(var context = new AppDbContext())
{
    var customer = context.Customers.First();
    context.Customers.Remove(customer);
    context.SaveChanges();
}

マイグレーションによるデータベース管理

EF Coreでは、マイグレーション機能を使い、モデルの変更に合わせてデータベースを更新できます。

マイグレーションの作成

dotnet ef migrations add InitialCreate

データベースの更新

dotnet ef database update

マイグレーションを使うと、手動でSQLを実行せずにデータベーススキーマの管理が可能です。

まとめ

  • Entity Frameworkは.NET開発でデータベース操作を効率化するORMツール
  • EF Coreはクロスプラットフォーム対応の最新版
  • モデルクラスとDbContextを作成し、LINQでCRUDが簡単にできる
  • マイグレーション機能でデータベースのバージョン管理も可能

.NETでのデータアクセスをシンプルかつ堅牢にしたいなら、Entity Framework Coreは必須の技術です。
ぜひ本記事を参考に、EF Coreを使った開発を始めてみてください。

.NET
スポンサーリンク
シェアする
trelab