Новая транзакция не разрешена, потому что в сеансе запущены другие потоки ASP.Net MVC

#c# #asp.net #asp.net-mvc

#c# #asp.net #asp.net-mvc

Вопрос:

Я получаю эту ошибку, но не могу понять, почему? В нем говорится, что новая транзакция не разрешена, потому что в сеансе запущены другие потоки.

 [HttpPost]
        public ActionResult UpdateMultiple(IEnumerable<int> employeesToDelete)
        {

            var listemployee = db.Employees.Where(x => employeesToDelete.Contains(x.ID));
            foreach (var item in listemployee)
            {
                int itemid = item.ID;
                Employee e = db.Employees.Find(itemid);
               // e = db.Employees.Find(item);
                db.Entry(e).State = EntityState.Modified;
                db.SaveChanges();
            }
            return RedirectToAction("Index");
        }
  

Комментарии:

1. Выйдите db.SaveChanges(); из цикла.

2. Добавьте a . ToList() для вашего listemployee , без ToList() база данных запрашивается при каждом из предварительных запусков, у читателя все еще есть открытая транзакция, когда вы пытаетесь сохранить