C#のデータベース接続方法|Entity Framework Core入門

先生

C#開発者必見!Entity Framework Coreでデータベース接続をスマートに実現する方法を徹底解説!

C#とEntity Framework Coreで始めるデータベース接続

C#でデータベースを扱う際、Entity Framework Core(EF Core)は非常に強力な選択肢です。EF Coreは、オブジェクト指向プログラミングの概念を用いてデータベースを操作できるORM(Object-Relational Mapper)であり、SQLを直接記述する手間を大幅に削減し、開発効率を向上させます。この記事では、EF Coreの基本的な使い方から、実際のデータベース接続、データのCRUD操作までを分かりやすく解説します。

データベースとの連携は、現代のアプリケーション開発において不可欠な要素です。EF Coreを習得することで、C#開発者はより効率的に、そして安全にデータベースを操作できるようになります。この記事が、あなたのデータベース接続の第一歩となることを願っています。

Entity Framework Coreの導入

まず、EF Coreを使用するための環境を整えましょう。Visual StudioなどのIDEを使用していることを前提とします。以下の手順でEF Coreをプロジェクトに導入します。

1. 新しいプロジェクトの作成: C#のコンソールアプリケーションまたはASP.NET Core Web APIプロジェクトを作成します。

2. NuGetパッケージのインストール: 以下のNuGetパッケージをインストールします。

* Microsoft.EntityFrameworkCore

* Microsoft.EntityFrameworkCore.Design

* Microsoft.EntityFrameworkCore.SqlServer(SQL Serverを使用する場合)または、使用するデータベースに対応したプロバイダー

Install-Package Microsoft.EntityFrameworkCore
Install-Package Microsoft.EntityFrameworkCore.Design
Install-Package Microsoft.EntityFrameworkCore.SqlServer

3. DbContextの作成: データベースとの接続やエンティティの管理を行うDbContextクラスを作成します。DbContextは、EF Coreの主要なクラスであり、データベースとのやり取りを抽象化します。

using Microsoft.EntityFrameworkCore;

public class BloggingContext : DbContext
{
    public DbSet<Blog> Blogs { get; set; }
    public DbSet<Post> Posts { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder options)
        => options.UseSqlServer("Server=(localdb)\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;");
}

上記の例では、SQL Serverを使用しています。OnConfiguringメソッドで接続文字列を指定します。必要に応じて、UseSqlServerを他のデータベースプロバイダーに変更してください。

4. エンティティの定義: データベースのテーブルに対応するエンティティクラスを定義します。エンティティクラスは、データベースのレコードを表すC#のクラスです。

public class Blog
{
    public int BlogId { get; set; }
    public string Url { get; set; }

    public List<Post> Posts { get; }
}

public class Post
{
    public int PostId { get; set; }
    public string Title { get; set; }
    public string Content { get; set; }

    public int BlogId { get; set; }
    public Blog Blog { get; set; }
}

データベースのCRUD操作

EF Coreを使用すると、データのCRUD操作(Create, Read, Update, Delete)が簡単に行えます。

1. データの作成(Create):

using (var db = new BloggingContext())
{
    Console.WriteLine("ブログを新規作成します");

    db.Blogs.Add(new Blog { Url = "http://example.com" });
    db.SaveChanges();
}

SaveChanges()メソッドを呼び出すことで、変更がデータベースに反映されます。

2. データの読み取り(Read):

using (var db = new BloggingContext())
{
    var blogs = db.Blogs
        .OrderBy(b => b.BlogId)
        .ToList();

    foreach (var blog in blogs)
    {
        Console.WriteLine($" - {blog.BlogId} - {blog.Url}");
    }
}

3. データの更新(Update):

using (var db = new BloggingContext())
{
    var blog = db.Blogs.Find(1);
    blog.Url = "http://example.net";
    db.SaveChanges();
}

4. データの削除(Delete):

using (var db = new BloggingContext())
{
    var blog = db.Blogs.Find(1);
    db.Blogs.Remove(blog);
    db.SaveChanges();
}

参考リンク

まとめ

この記事では、C#とEntity Framework Coreを使用してデータベースに接続し、基本的なCRUD操作を行う方法を解説しました。EF Coreは、データベース操作を効率化し、開発者の負担を軽減する強力なツールです。ぜひ、EF Coreを活用して、より高度なアプリケーション開発に挑戦してみてください。