2016-07-06 22 views
0

似たような質問がありますが、私の場合は何か間違っています。単に各行を更新しようとしていますが、何らかの理由で何もせず、エラーもありません。asp.netのEntity FrameworkでForeachループのデータベースレコードを更新する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

この例では、エンティティが既にアタッチされているため、「接続」と「状態」の行は不要です。 – Kinetic

+0

残念ながら、それは動作していません –

+0

SQLプロファイラを実行して、データベースに何が起きているかを確認できますか? – 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

あなたは次のことを試すことができ、私はまだそれをテストしhaven't:

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();    
     } 
    } 
関連する問題