实体更新无效,更新过程中没有错误。

时间:2014-03-25 18:21:53

标签: c# asp.net entity-framework

没有错误,在数据库中找到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;
}

1 个答案:

答案 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,因为无论如何都会发生这种情况。