private void BatchSaveInTransaction(IList <AppAuditLog> logs) { logger.LogInformation($"Batch save {logs.Count} audit logs to db ..."); session.SetBatchSize(logs.Count); using (var tx = session.BeginTransaction()) { try { session.SetBatchSize(logs.Count); foreach (var log in logs) { session.Save(log); } session.Flush(); session.Clear(); tx.Commit(); } catch (Exception ex) { tx?.Rollback(); logger.LogError(ex, "Can not save audit logs with transactions."); foreach (var log in logs) { logger.LogError(log.ToJson()); } } } }