没有错误,在数据库中找到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;
}
答案 0 :(得分:1)
我不知道其中任何一个是否会导致问题,但是当您要在下一行检索变量时,您不应该创建新对象,它应该没有必要设置对象的状态,EF应该为你处理。
TBL_LogIn newUser = hrmsDb.TBL_LogIn.Where(x => x.EmployeeID == inputEmployeeID).FirstOrDefault();
if (newUser != null)
{
AddLogInInfo(newUser);
hrmsDb.SaveChanges();
}
else
{ }
P.S。如果您在catch区块中所做的一切都是重新抛出异常,请不要再尝试使用try / catch,因为无论如何都会发生这种情况。