From ec72f60759118400a54f25cf1abf200563b40ccb Mon Sep 17 00:00:00 2001 From: Koen Date: Sun, 11 Dec 2022 23:38:45 +0000 Subject: [PATCH] Backport #169 into v3 branch --- .../Internal/TriggerSessionSaveChangesInterceptor.cs | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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;