記事詳細


投稿日
2026年07月05日20時25分
タイトル

asp.net core mvc: databaseアプリ開発において、program.csファイル内の関数:builder.services.adddbcontext<applicationdbcontext>(options => options.usesqlserver(connectionstring)); を解説してください。

内容

はい。
ASP.NET Core MVC の Program.cs にある

Csharp
builder.Services.AddDbContext<ApplicationDbContext>( options => options.UseSqlServer(connectionString) );

は、Entity Framework Core (EF Core) を使って SQL Server データベースに接続するための DbContext の登録処理 です。
順を追って解説します。

1. builder.Services

  • 依存性注入 (Dependency Injection, DI) コンテナ にサービスを登録するためのコレクションです。
  • ASP.NET Core では、コントローラーやサービスクラスのコンストラクタで必要な依存オブジェクトを自動的に注入する仕組みがあります。
  • builder.Services に登録した型は、アプリ全体で必要なときに自動で生成・管理されます。

2. AddDbContext<ApplicationDbContext>(...)

  • ApplicationDbContext は、あなたが定義した DbContext クラスで、データベースとやり取りするための EF Core の中心クラス です。
  • AddDbContext<TContext> は、DI コンテナに TContext を スコープ付きライフタイム(Scoped) で登録します。
    • Scoped:HTTP リクエストごとに 1 インスタンスだけ生成され、リクエスト終了時に破棄されます。
  • これにより、コントローラーやサービスで以下のようにコンストラクタインジェクションが可能になります。
Csharp
public class HomeController : Controller { private readonly ApplicationDbContext _context; public HomeController(ApplicationDbContext context) { _context = context; } }

3. options => options.UseSqlServer(connectionString)

  • ラムダ式で DbContextOptionsBuilder を受け取り、どのデータベースプロバイダーを使うか設定します。
  • UseSqlServer は SQL Server 用の EF Core プロバイダーを指定するメソッドです。
  • connectionString は SQL Server に接続するための文字列で、通常は appsettings.json に記述します。

例:

Json
{ "ConnectionStrings": { "DefaultConnection": "Server=localhost;Database=MyDb;Trusted_Connection=True;MultipleActiveResultSets=true" } }

Program.cs で読み込む例:

Csharp
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");

4. 実行時の流れ

  1. アプリ起動時に AddDbContext が呼ばれ、ApplicationDbContext の生成方法が DI コンテナに登録される。
  2. コントローラーやサービスで ApplicationDbContext が必要になると、DI コンテナが connectionString を使って SQL Server に接続できるインスタンスを生成。
  3. リクエスト終了時に DbContext は破棄され、接続もクリーンに解放される。

5. 補足(他の登録方法との違い)

  • AddDbContext:標準的な登録方法。リクエストごとに新しいインスタンス。
  • AddDbContextPool:DbContext をプールして再利用し、パフォーマンスを向上させる(高トラフィック向け)。
  • AddDbContextFactory:必要なときに手動で DbContext を生成するためのファクトリを登録。

✅ まとめ
このコードは「ApplicationDbContext を SQL Server に接続できるように設定し、DI コンテナに登録する」ためのものです。
これにより、アプリ全体で安全かつ効率的にデータベースアクセスが可能になります。

もし希望があれば、この Program.cs の 完全なサンプル構成appsettings.json 含む)を作って、すぐ動く MVC + SQL Server 接続例を作成できますが、作りますか?
そうすれば実際に動かして理解できます。

Powered by Froala Editor

添付画像

画像はありません
Genreのカテゴリ-名
Contexts
編集 | 記事一覧