diff --git a/src/EntityFrameworkCore.Triggered/Internal/TriggerSessionSaveChangesInterceptor.cs b/src/EntityFrameworkCore.Triggered/Internal/TriggerSessionSaveChangesInterceptor.cs index 91c8d3c..b58bf18 100644 --- a/src/EntityFrameworkCore.Triggered/Internal/TriggerSessionSaveChangesInterceptor.cs +++ b/src/EntityFrameworkCore.Triggered/Internal/TriggerSessionSaveChangesInterceptor.cs @@ -90,6 +90,12 @@ public InterceptionResult SavingChanges(DbContextEventData eventData, Inter _triggerSession.CaptureDiscoveredChanges(); _triggerSession.RaiseBeforeSaveCompletedTriggers().GetAwaiter().GetResult(); } + catch + { + // We're aborting the SaveChanges call, delist the trigger session now + DelistTriggerSession(eventData); + throw; + } finally { eventData.Context.ChangeTracker.AutoDetectChangesEnabled = defaultAutoDetectChangesEnabled; @@ -119,6 +125,12 @@ public async ValueTask> SavingChangesAsync(DbContextEven _triggerSession.CaptureDiscoveredChanges(); await _triggerSession.RaiseBeforeSaveCompletedTriggers(cancellationToken).ConfigureAwait(false); } + catch + { + // We're aborting the SaveChanges call, delist the trigger session now + DelistTriggerSession(eventData); + throw; + } finally { eventData.Context.ChangeTracker.AutoDetectChangesEnabled = defaultAutoDetectChangesEnabled;