Skip to content

Commit eee853d

Browse files
authored
Merge pull request #83 from koenbeuk/interception-tweaks
Interception tweaks
2 parents 76defa9 + 36f7a1a commit eee853d

File tree

1 file changed

+15
-9
lines changed

1 file changed

+15
-9
lines changed

src/EntityFrameworkCore.Triggered/Internal/TriggerSessionSaveChangesInterceptor.cs

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -76,14 +76,16 @@ public InterceptionResult<int> SavingChanges(DbContextEventData eventData, Inter
7676
if (!(eventData.Context is TriggeredDbContext))
7777
{
7878
EnlistTriggerSession(eventData);
79+
Debug.Assert(_triggerSession != null);
7980

8081
var defaultAutoDetectChangesEnabled = eventData.Context.ChangeTracker.AutoDetectChangesEnabled;
8182

8283
try
8384
{
85+
8486
eventData.Context.ChangeTracker.AutoDetectChangesEnabled = false;
8587

86-
_triggerSession!.RaiseBeforeSaveTriggers().GetAwaiter().GetResult();
88+
_triggerSession.RaiseBeforeSaveTriggers().GetAwaiter().GetResult();
8789
_triggerSession.CaptureDiscoveredChanges();
8890
}
8991
finally
@@ -101,13 +103,17 @@ public async ValueTask<InterceptionResult<int>> SavingChangesAsync(DbContextEven
101103
{
102104
if (!(eventData.Context is TriggeredDbContext))
103105
{
104-
EnlistTriggerSession(eventData);
106+
EnlistTriggerSession(eventData);
107+
Debug.Assert(_triggerSession != null);
105108

106109
var defaultAutoDetectChangesEnabled = eventData.Context.ChangeTracker.AutoDetectChangesEnabled;
107110

108111
try
109112
{
110-
await _triggerSession!.RaiseBeforeSaveTriggers(cancellationToken).ConfigureAwait(false);
113+
114+
eventData.Context.ChangeTracker.AutoDetectChangesEnabled = false;
115+
116+
await _triggerSession.RaiseBeforeSaveTriggers(cancellationToken).ConfigureAwait(false);
111117
_triggerSession.CaptureDiscoveredChanges();
112118
}
113119
finally
@@ -137,9 +143,9 @@ public async ValueTask<int> SavedChangesAsync(SaveChangesCompletedEventData even
137143
{
138144
if (!(eventData.Context is TriggeredDbContext))
139145
{
140-
EnlistTriggerSession(eventData);
146+
Debug.Assert(_triggerSession != null);
141147

142-
await _triggerSession!.RaiseAfterSaveTriggers(cancellationToken).ConfigureAwait(false);
148+
await _triggerSession.RaiseAfterSaveTriggers(cancellationToken).ConfigureAwait(false);
143149

144150
DelistTriggerSession(eventData);
145151
}
@@ -151,9 +157,9 @@ public void SaveChangesFailed(DbContextErrorEventData eventData)
151157
{
152158
if (!(eventData.Context is TriggeredDbContext))
153159
{
154-
EnlistTriggerSession(eventData);
160+
Debug.Assert(_triggerSession != null);
155161

156-
_triggerSession!.RaiseAfterSaveFailedTriggers(eventData.Exception).GetAwaiter().GetResult();
162+
_triggerSession.RaiseAfterSaveFailedTriggers(eventData.Exception).GetAwaiter().GetResult();
157163

158164
DelistTriggerSession(eventData);
159165
}
@@ -163,9 +169,9 @@ public async Task SaveChangesFailedAsync(DbContextErrorEventData eventData, Canc
163169
{
164170
if (!(eventData.Context is TriggeredDbContext))
165171
{
166-
EnlistTriggerSession(eventData);
172+
Debug.Assert(_triggerSession != null);
167173

168-
await _triggerSession!.RaiseAfterSaveFailedTriggers(eventData.Exception, cancellationToken).ConfigureAwait(false);
174+
await _triggerSession.RaiseAfterSaveFailedTriggers(eventData.Exception, cancellationToken).ConfigureAwait(false);
169175

170176
DelistTriggerSession(eventData);
171177
}

0 commit comments

Comments
 (0)