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

감사하지만 나던 내 질문에 긍정적 인 영향을 미친다. 만약 당신이 내 코드 메신저 db에서 메신저 모델 및 메신저 변경 사항을 저장 업데이 트지고 봐. 아니면 내가 보지 못한 걸보고 있니? – Gyocol

+0

안녕하세요 당신의 코드를 삽입 (Model.Emails [i] .ID> 0) 또한 내가 편집 작업을 게시하는 이유를 이해하지 못하는 것을 참조하십시오. – ADIMO