实体更新不工作,更新过程中没有错误

本文关键字:更新 过程中 有错误 更新过程 工作 实体 | 更新日期: 2023-09-27 17:53:03

没有错误,在数据库上找到newUser对象,但数据库没有被修改。有什么问题吗?作为初学者,详细的回答是非常受欢迎的。谢谢。

TBL_LogIn newUser = new TBL_LogIn();
newUser = hrmsDb.TBL_LogIn.Where(x => x.EmployeeID == inputEmployeeID).FirstOrDefault();
try
{
    if (newUser != null)
    {
        AddLogInInfo(newUser);
        hrmsDb.Entry(newUser).State = EntityState.Modified; 
        hrmsDb.SaveChanges();
    }
    else
    { }
}
catch (Exception ex)
{
    throw;
}
/*-----Functions to Update New Employee Information in Three tables-------*/
private void AddLogInInfo(TBL_LogIn newUser)
{
    string UserName = TextBoxUsername.Text;
    string Password = TextBoxPassword.Text;
    string UserType = TextBoxUserType.Text;
    newUser.UserName = UserName;
    newUser.PassWord = Password;
    newUser.UserType = UserType;
}

实体更新不工作,更新过程中没有错误

我不知道这两者是否导致了问题,但你不应该创建一个新的对象,当你只是要检索到下一行的变量,它不应该是必要的设置对象的状态,EF应该照顾你。

TBL_LogIn newUser = hrmsDb.TBL_LogIn.Where(x => x.EmployeeID == inputEmployeeID).FirstOrDefault();
if (newUser != null)
{
    AddLogInInfo(newUser);
    hrmsDb.SaveChanges();
}
else
{ }

注:如果你要在catch块中做的只是重新抛出异常,那么就不要麻烦地放入try/catch,因为无论如何都会发生这种情况。