0

Я знаю, что есть похожие вопросы, но в моем случае что-то не так. Просто пытаюсь обновить каждую строку, но по какой-то причине и без ошибок ничего не делает.Обновить запись db в цикле foreach с Entity Framework в asp.net mvc 6

Спасибо.

public ActionResult Index() 
{ 
    using (var db = new DoskaUsContext()) 
    { 
     foreach (var category in db.Categories) 
     { 
      category.Count = 25; 
      db.Categories.Attach(category); 
      db.Entry(category).State = EntityState.Modified; 
     } 

     db.SaveChanges(); 

     return View();    
    } 
} 
+4

Строки «attach» и «state» не нужны, поскольку объект уже прикреплен в этом примере. – Kinetic

+0

К сожалению, он не работает –

+0

Вы можете запустить SQL Profiler, чтобы узнать, попадает ли/в базу данных? – Crowcoder

ответ

1
//3. Mark entity as modified 
db.Entry(Category).State = System.Data.Entity.EntityState.Modified;  

//4. out side for loop call SaveChanges 
db.SaveChanges(); 

Он работает.

1

Вы можете попробовать следующее, я не тестировалась его еще:

public ActionResult Index(Categories category) 
    { 

     using (var db = new DoskaUsContext()) 
     { 
      foreach (var cat in category) 
      { 
       category.Count = 25; 
       db.Entry(category).State = EntityState.Modified; 
      } 

      db.SaveChanges(); 
      return View();    
     } 
    } 
Смежные вопросы