我有一个简单的MVC 5应用程序,在我的控制器中,我想知道在调用db.SaveChanges()
之前如何从数据库访问当前数据。我有以下代码:
// GET:
public ActionResult Edit(int id)
{
Product product = db.Products.Find(id);
return View(product);
}
// POST:
[HttpPost]
public ActionResult Edit([Bind(Include = "id,title,content,price)] Product product)
{
/* How to access old value from database here? */
db.Entry(product).State = EntityState.Modified;
db.SaveChanges();
}
如果我product.title
它正在检索新值,我想在保存之前访问旧值。
我在此链接中尝试了接受的答案:How to access old entity value in ASP.NET Entity Framework但它对我没有用。
答案 0 :(得分:2)
你可以这样做:
// POST:
[HttpPost]
public ActionResult Edit([Bind(Include = "id,title,content,price)] Product product)
{
var original_data = db.Products.AsNoTracking().Where(P => P.id == product.id).FirstOrDefault();
/* Use original_data.title here */
db.Entry(product).State = EntityState.Modified;
db.SaveChanges();
}