/// <summary> /// Запись нескольких полей в БД /// </summary> public static void Inserts <TEntity>(this EFDbContext context, IEnumerable <TEntity> entities) where TEntity : class { // Отключаем отслеживание и проверку изменений для оптимизации вставки множества полей context.Configuration.AutoDetectChangesEnabled = false; context.Configuration.ValidateOnSaveEnabled = false; context.Database.Log = (s => System.Diagnostics.Debug.WriteLine(s)); foreach (TEntity entity in entities) { context.Entry(entity).State = EntityState.Added; } context.Configuration.AutoDetectChangesEnabled = true; context.Configuration.ValidateOnSaveEnabled = true; }
public static void Delete <TEntity>(this EFDbContext context, IEnumerable <long> entities) where TEntity : class { // Отключаем отслеживание и проверку изменений для оптимизации вставки множества полей context.Configuration.AutoDetectChangesEnabled = false; context.Configuration.ValidateOnSaveEnabled = false; context.Database.Log = (s => System.Diagnostics.Debug.WriteLine(s)); foreach (int id in entities) { TEntity item = context.Set <TEntity>().Find(id); if (item != null) { context.Entry <TEntity>(item).State = EntityState.Deleted; } } context.Configuration.AutoDetectChangesEnabled = true; context.Configuration.ValidateOnSaveEnabled = true; }