Temporary disabling of change tracking in Entity Framework
public sealed class NoChangeTracking : IDisposable | |
{ | |
private readonly DbContext _dbContext; | |
private readonly bool _initialAutoDetectChangesValue; | |
public NoChangeTracking(DbContext dbContext) | |
{ | |
if (dbContext == null) throw new ArgumentNullException("dbContext"); | |
_dbContext = dbContext; | |
_initialAutoDetectChangesValue = dbContext.Configuration.AutoDetectChangesEnabled; | |
SetChangeDetection(false); | |
} | |
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1063:ImplementIDisposableCorrectly")] | |
public void Dispose() | |
{ | |
SetChangeDetection(_initialAutoDetectChangesValue); | |
} | |
private void SetChangeDetection(bool setting) | |
{ | |
_dbContext.Configuration.AutoDetectChangesEnabled = setting; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment