1

我想更新數據庫中存在的多個對象並保存新對象,但它不工作?TryUpdateModel/UpdateModel不起作用?

這裏是我的代碼:

[HttpPost] 
    public ActionResult Edit(MasterModel Model) 
    { 
     DBEntities db = new DBEntities(); 
     var reloadView = true; 
     for(int i = 0 ;i< Model.Emails.Count(); i++) 
     { 
      if(Model.Emails[i].ID > 0) 
      { 
       var id = Model.Emails[i].ID; 
       var email = db.EMAIL.Single(e=> e.ID == id); 
       if(TryValidateModel(Model.Emails[i], "Emails[" +i.ToString() + "]")) 
       { 
        TryUpdateModel(email, "Emails[" + i.ToString() + "]"); 
        reloadView = false; 
       } 
       else 
       { 
        reloadView = true; 
       } 

      } 
      else 
      { 
       if(TryValidateModel(Model.Emails[i], "Emails[" + i.ToString() + "]")) 
       { 
        db.AddToEMAIL(Model.Emails[i]); 
        reloadView = false; 
       } 
       else 
       { 
        reloadView = true; 
       } 
      } 
     } 

     if(reloadView) 
     { 
      return View(Model); 
     } 
     else 
     { 
      db.SaveChanges(); 
      return RedirectToAction("Index"); 
     } 
    } 

如果TryUpdateModel後我做db.SaveChanges();我得到一個System.Data.UpdateException與參照完整性

而且,如果我讓我的代碼就像在這個例子中,它只是不更新​​! :S

噢,我也試過UpdateModel()。

有什麼建議嗎?

在此先感謝!

乾杯

回答

0

通常的工作流程用於更新的對象是:

1)負載舊對象(使用ID) 2)更改屬性 3)的SaveChanges

+0

謝謝您的回答,但它不對我的問題有任何積極的影響。如果你看我的代碼即時通訊數據庫更新模型,並保存更改。或者你看到我沒有看到的東西? – Gyocol

+0

嗨我看到你的代碼實現也插入(Model.Emails [i] .ID> 0),我不明白爲什麼如果你發佈編輯操作。 – ADIMO