实体更新不工作,更新过程中没有错误
本文关键字:更新 过程中 有错误 更新过程 工作 实体 | 更新日期: 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,因为无论如何都会发生这种情况。