Exemple #1
0
        public static TEntity Delete <TEntity>(this EFDbContext context, int id) where TEntity : class
        {
            // Здесь мы можем указывать различные настройки контекста,
            // например выводить в отладчик сгенерированный SQL-код
            //context.Database.Log =
            //    (s => System.Diagnostics.Debug.WriteLine(s));

            TEntity item = context.Set <TEntity>().Find(id);

            if (item != null)
            {
                context.Entry <TEntity>(item).State = EntityState.Deleted;
            }
            return(item);
        }
Exemple #2
0
        public static void Delete <TEntity>(this EFDbContext context, IEnumerable <int> 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;
        }