
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を活用して、より高度なアプリケーション開発に挑戦してみてください。