DbContextとは
DbContext
は、データベースのセッションを表し、データベースのクエリ実行、保存されたデータの取得、および変更の追跡と永続化を行う機能を提供します。DbContext
クラスを使用することで、開発者はデータベース構造を直接扱う代わりに、クラスとプロパティを介してデータベースとのやり取りを行うことができます。
主要な機能
-
データモデルの設定:
DbContext
は、モデルクラスとデータベースのテーブルをマッピングします。Fluent APIやデータアノテーションを使用して、このマッピングを細かく制御できます。 - クエリの実行: LINQ (Language Integrated Query) を使用して、データベースに対するクエリを書くことができ、その結果をオブジェクトのコレクションとして取得します。
-
変更の追跡:
DbContext
は、取得したオブジェクトに対する変更を追跡し、データベースに対する更新を容易にします。 - トランザクションのサポート: データの整合性を保つために、複数の操作を一つのトランザクションとして実行することができます。
- キャッシング: 第一レベルのキャッシュを提供し、同じコンテキスト内でのエンティティの再利用を可能にします。
基本的な使用方法
public class MyDbContext : DbContext
{
public DbSet<MyEntity> MyEntities { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=MyDb;Trusted_Connection=True;");
}
}
この例では、DbContext
を継承してカスタムコンテキストMyDbContext
を作成し、DbSet<MyEntity>
プロパティを通じてMyEntity
クラスのインスタンスをデータベースのテーブルにマッピングしています。OnConfiguring
メソッド内で、データベース接続の設定を行います。