@@ -57,9 +57,22 @@ public override int SaveChanges(bool acceptAllChangesOnSuccess)
5757
5858 try
5959 {
60- _triggerSession . RaiseBeforeSaveTriggers ( default ) . GetAwaiter ( ) . GetResult ( ) ;
61- _triggerSession . CaptureDiscoveredChanges ( ) ;
62- var result = base . SaveChanges ( acceptAllChangesOnSuccess ) ;
60+ int result ;
61+ var defaultAutoDetectChangesEnabled = ChangeTracker . AutoDetectChangesEnabled ;
62+
63+ try
64+ {
65+ ChangeTracker . AutoDetectChangesEnabled = false ;
66+
67+ _triggerSession . RaiseBeforeSaveTriggers ( default ) . GetAwaiter ( ) . GetResult ( ) ;
68+ _triggerSession . CaptureDiscoveredChanges ( ) ;
69+ result = base . SaveChanges ( acceptAllChangesOnSuccess ) ;
70+ }
71+ finally
72+ {
73+ ChangeTracker . AutoDetectChangesEnabled = defaultAutoDetectChangesEnabled ;
74+ }
75+
6376 _triggerSession . RaiseAfterSaveTriggers ( default ) . GetAwaiter ( ) . GetResult ( ) ;
6477
6578 return result ;
@@ -86,10 +99,23 @@ public override async Task<int> SaveChangesAsync(bool acceptAllChangesOnSuccess,
8699 try
87100 {
88101
89- await _triggerSession . RaiseBeforeSaveTriggers ( cancellationToken ) . ConfigureAwait ( false ) ;
90- _triggerSession . CaptureDiscoveredChanges ( ) ;
91- var result = base . SaveChanges ( acceptAllChangesOnSuccess ) ;
92- await _triggerSession . RaiseAfterSaveTriggers ( cancellationToken ) . ConfigureAwait ( false ) ;
102+ int result ;
103+ var defaultAutoDetectChangesEnabled = ChangeTracker . AutoDetectChangesEnabled ;
104+
105+ try
106+ {
107+ ChangeTracker . AutoDetectChangesEnabled = false ;
108+
109+ _triggerSession . RaiseBeforeSaveTriggers ( default ) . GetAwaiter ( ) . GetResult ( ) ;
110+ _triggerSession . CaptureDiscoveredChanges ( ) ;
111+ result = await base . SaveChangesAsync ( acceptAllChangesOnSuccess , cancellationToken ) ;
112+ }
113+ finally
114+ {
115+ ChangeTracker . AutoDetectChangesEnabled = defaultAutoDetectChangesEnabled ;
116+ }
117+
118+ _triggerSession . RaiseAfterSaveTriggers ( default ) . GetAwaiter ( ) . GetResult ( ) ;
93119
94120 return result ;
95121 }
0 commit comments