namespace Phantom.Controller.Database.Postgres; sealed class LazyDbContext : ILazyDbContext { public ApplicationDbContext Ctx => cachedContext ??= contextFactory.Eager(); private readonly ApplicationDbContextFactory contextFactory; private ApplicationDbContext? cachedContext; internal LazyDbContext(ApplicationDbContextFactory contextFactory) { this.contextFactory = contextFactory; } public ValueTask DisposeAsync() { return cachedContext?.DisposeAsync() ?? ValueTask.CompletedTask; } }