ASP.NETでEF Coreを使ったデータベース接続を完全ガイド!初心者でもわかるEntity Framework Core入門
生徒
「ASP.NETでデータベースってどうやって使うんですか?そもそもデータベースって何ですか?」
先生
「データベースは、たくさんの情報を整理して保存するための大きな引き出しのようなものです。ASP.NETではEF Coreを使うと、とても簡単に接続できます。」
生徒
「コードを書くのが難しそうで不安です……」
先生
「大丈夫です。EF Coreは、難しいSQLを書かなくても、C#のコードだけで操作できる仕組みになっています。」
1. EF Coreとは何か?
EF Core(Entity Framework Core)は、ASP.NET Coreで使われるデータベース接続用の仕組みです。正式にはORMと呼ばれ、これは「表形式のデータ」と「C#のクラス」を自動で結びつけてくれる便利な道具です。初心者の方は、データベースを直接触らなくても、C#で操作できる魔法の翻訳機だと考えてください。
例えば、データベースの中の1行のデータを、C#の1つの箱(クラス)として扱えるようになります。
2. ASP.NETとデータベースの関係
ASP.NETのWebアプリでは、ユーザー情報、商品情報、投稿内容などを保存する必要があります。その保存場所がデータベースです。EF Coreを使うと、保存する・取り出す・更新する・削除するといった操作を、すべてC#のコードで行えます。
これは、ノートに手書きで管理していた名簿を、パソコンで自動管理できるようになるイメージです。
3. DbContextの役割を理解しよう
DbContextは、EF Coreの中心となる存在です。これはアプリとデータベースをつなぐ窓口のようなものです。ここを通して、データのやり取りを行います。
public class AppDbContext : DbContext
{
public DbSet<User> Users { get; set; }
}
このコードでは、「Users」というテーブルを扱う準備をしています。DbSetは、データベース内の表を表すものです。
4. モデルクラスでデータの形を決める
モデルクラスは、データベースに保存する情報の設計図です。初心者の方は、紙に書く申込書の項目をイメージしてください。
public class User
{
public int Id { get; set; }
public string Name { get; set; }
}
この例では、「番号」と「名前」を持つユーザー情報を表しています。EF Coreは、このクラスを見て自動でデータベースの形を理解します。
5. データベース接続文字列とは?
接続文字列とは、どのデータベースに、どうやってつなぐかを書いた住所のようなものです。ASP.NET Coreでは、appsettings.jsonに書くのが一般的です。
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\MSSQLLocalDB;Database=SampleDb;Trusted_Connection=True;"
}
}
ここでは、どのサーバーの、どのデータベースを使うかを指定しています。初心者の方は、細かい意味より「つなぐための設定」と覚えれば十分です。
6. EF CoreをASP.NETに登録する
次に、EF Coreをアプリで使えるように登録します。これは「この道具を使いますよ」とASP.NETに伝える作業です。
builder.Services.AddDbContext<AppDbContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));
この設定によって、ASP.NETは自動でデータベース接続を管理してくれます。
7. データを保存してみよう
EF Coreでは、データの保存もとてもシンプルです。新しいデータを箱に入れて、保存ボタンを押す感覚です。
var user = new User { Name = "太郎" };
context.Users.Add(user);
context.SaveChanges();
これだけで、データベースに情報が保存されます。難しい命令は一切ありません。
8. データを取り出す基本操作
保存したデータを取り出すときも、C#のコードで簡単に行えます。これは、引き出しから書類を1枚取り出すような操作です。
var users = context.Users.ToList();
この1行で、Usersテーブルの中身をすべて取得できます。EF Coreが裏側で自動処理してくれるため、初心者でも安心です。