엔티티를 사용하여 테이블을 업데이트하려고합니다. 새로운 데이터는 usu_login
과 usu_senha
안에 들어 있지만 코드가 SaveChanges();
비트가되면 실제로 작동하지 않습니다. 내가 놓친 게 있니? 왜 업데이트가 진행되지 않습니까? 새 데이터를 사용하여 새 사용자를 삽입하려고 시도했는데 실제로 작동합니다. 업데이트로 인해 어려움이 있습니다.엔티티가있는 테이블을 업데이트하지 못합니다.
[Authorize]
[HttpPost]
public string AtualizarCredenciais(string usu_senha, string usu_login)
{
try
{
//Busca o usuário com o ID de sessão.
USUARIOS usuario = mUsuario.BuscarUsuario(int.Parse(HttpContext.User.Identity.Name));
//Cria uma instância de contexto do banco.
BdContext dbcontext = new BdContext();
//Mudança de senha e usuário pro novo usuário.
usuario.USU_LOGIN = usu_login;
usuario.USU_SENHA = usu_senha;
dbcontext.SaveChanges();
return "Credenciais atualizadas.";
}
catch (Exception e)
{
Debug.WriteLine(e.ToString());
return "Erro na atualização de credenciais.";
}
}
편집은 다음 mUsuario.BuscarUsuario 방법은 세션에서 현재의 사용자의 ID 이름을 사용하여로드 된 모든 그것의 값을 데이터베이스에서 사용자 선호도 유형의 개체를 반환하는 데 사용됩니다.
솔직히 : 데이빗 대답이 정확했습니다. dbcontext 내부에 buscarUsuario
메서드를 가져 오는 것이 었습니다.
USUARIOS usuario = dbcontext.USUARIOS.Find(int.Parse(HttpContext.User.Identity.Name));
'USUARIOS usuario = mUsuario ....'라인은 무엇을 설명 할 수 있습니까? – Redouane
@Redouane이 방금 질문을 업데이트했습니다. – William
아래 @David의 대답은 내가 쓰려고 생각한 것입니다. 'mUsuario'에서 사용하는 DbContext 인스턴스에서 SaveChanges()를 호출해야합니다. 즉, 데이터를 수정 한 후에 SaveChanges()를 호출 할 때 데이터를 검색하는 데 사용되는 것과 동일한 컨텍스트 인스턴스를 사용해야한다는 의미입니다. – Redouane