private void SaveToDb <T>(List <T> collectionToInsert) where T : class { WalletDbContext context = null; try { context = new WalletDbContext(DbContextOptionsFactory.DbContextOptions()); context.ChangeTracker.AutoDetectChangesEnabled = false; int count = 0; foreach (var entity in collectionToInsert) { ++count; context = AddToContext(context, entity, count, 100, true); } context.SaveChanges(); } finally { if (context != null) { context.Dispose(); } } }
private WalletDbContext AddToContext <T>(WalletDbContext context, T entity, int count, int commitCount, bool recreateContext) where T : class { context.Set <T>().Add(entity); if (count % commitCount == 0) { context.SaveChanges(); if (recreateContext) { context.Dispose(); context = new WalletDbContext(DbContextOptionsFactory.DbContextOptions()); context.ChangeTracker.AutoDetectChangesEnabled = false; } } return(context); }
public void Dispose() { Db.Dispose(); GC.SuppressFinalize(this); }