Пример #1
0
        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();
                }
            }
        }
Пример #2
0
        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);
        }
Пример #3
0
 public void Dispose()
 {
     Db.Dispose();
     GC.SuppressFinalize(this);
 }