Example #1
0
 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());
             }
         }
     }
 }