2011-09-26 3 views
0

Entity Framework를 처음 사용하고 데이터베이스에서 레코드를 업데이트해야합니다. MVC3 프레임 워크에서 생성 한 "편집"예제를 사용하여 필요에 맞게 사용자 정의하려고했습니다.Entity Framework - 사용자 정보 업데이트 문제

비밀번호 필드가 있는데 업데이트하기 전에 데이터를 암호화해야합니다. db.SaveChanges()를 제외하고 모든 프로세스가 정상적으로 실행 중입니다. 그것은 양식에 의해 게시 된 데이터를 저장합니다. 암호를 변경하려고해도 프레임 워크는 무시하고 폼에 게시 된대로 데이터를 저장합니다.

내 .cshtml 파일 :

<div class="editor-label"> 
    @Html.Label("password", "Senha") 
</div> 
<div class="editor-field"> 
    @Html.Password("password") 
</div> 

내 방법 :

[HttpPost] 
public ActionResult Editar(FormCollection form) 
{ 
    var newPassword = form["password"]; 
    var email = Session["email"].ToString(); 

    UserSet user = db.UserSet.SingleOrDefault(m => m.Email == email); 

    if (ModelState.IsValid) 
    { 
     //Changing password 
     user.Password = Crypto.CalculateMD5Hash(newPassword);//this line is ignored 
     TryUpdateModel(user); 
     db.SaveChanges(); 
     return Redirect("~/Home/Mural"); 
    } 
    return View(user); 
} 

나는 무엇을 놓치고?

답변

1

귀하의 라인

TryUpdateModel(user); 

당신이 이전 모델에했던 것을 덮어 쓰게됩니다.

변경

TryUpdateModel(user); 
user.Password = Crypto.CalculateMD5Hash(newPassword);//this line is ignored 

그리고 그것은 아마 일 것까지 순서.

+0

독감 감사합니다. 첫눈에 비논리적 인 것처럼 보이기는하지만, 나 자신이 결코 깨닫지 못할 것입니다. –

+0

걱정할 필요가 없습니다. 나는 내가 [테디 베어 페어 프로그래밍] (http://asimjalis.blogspot.com/2004/07/pair-programming-with-teddy-bear.html)이 도움이 될 것이라고 생각하는 것에 매달릴 때 도움이된다. – toxaq

관련 문제