AppDbContextFactory.cs 784 B

123456789101112131415
  1. using Application.Abstractions.Data;
  2. using Microsoft.EntityFrameworkCore;
  3. namespace Infrastructure.Persistence;
  4. /// <summary>
  5. /// <see cref="IAppDbContextFactory"/> 구현 — EF 풀링 팩토리(<see cref="IDbContextFactory{AppDbContext}"/>)를 감싼다.
  6. /// 요청 스코프 컨텍스트(AddDbContextPool)와 동일한 옵션/풀을 공유하며, 호출자가 `await using` 으로
  7. /// 해제해야 풀에 반환된다. PG 성공 후 저장 실패 대사 로그처럼 실패한 스코프 컨텍스트와 분리된
  8. /// 독립 커밋이 필요한 out-of-band 작업 전용. (Phase 1.5)
  9. /// </summary>
  10. public sealed class AppDbContextFactory(IDbContextFactory<AppDbContext> factory) : IAppDbContextFactory
  11. {
  12. public IAppDbContext CreateDbContext() => factory.CreateDbContext();
  13. }