如何在ASP.NET实体框架中访问旧实体值

MaT*_*MaT 7 c# asp.net entity-framework

我有一个小的ASP.Net mvc3应用程序,我在编辑部分.我有默认模板:

public ActionResult Edit(int id)
{
    User user = db.Users.Find(id); 
    return View(user);
}

public ActionResult Edit(User user)
{
    //(Here access to old user name for example)
    db.Entry(user).State = EntityState.Modified;
    db.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)

如果我执行user.name我有新值但我想在保存之前访问db值.

谢谢 !

MaT*_*MaT 12

我用一个小技巧得到了它:

db.Users.Attach(user);
var current = db.Entry(user).CurrentValues.Clone();
db.Entry(user).Reload();
//Do you user(from db) stuff
db.Entry(user).CurrentValues.SetValues(current);
db.Entry(user).State = EntityState.Modified;
db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)