Pooled DbContext factory
public async Task EmitBatchAsync(IEnumerable<LogEvent> batch)
{
var db = CreateDbContext();
if (db != null)
{
await using (db)
{
db.MinHookImportance = HookImportance.Important;
db.Logs.AddRange(batch.Select(CovertLogEvent));
await db.SaveChangesAsync();
}
}
}
public Task OnEmptyBatchAsync()
=> Task.CompletedTask;
private static SmartDbContext CreateDbContext()
{
var engine = EngineContext.Current;
var factory = engine.Application.Services
.Resolve<IDbContextFactory<SmartDbContext>>();
return factory.CreateDbContext();
}Last updated
Was this helpful?