C# 如何在ASP.NET MVC中更新时获取旧实体值
我有一个简单的MVC 5应用程序,在我的控制器中,我想知道如何在调用C# 如何在ASP.NET MVC中更新时获取旧实体值,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,我有一个简单的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 = "i
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
操作,它正在检索新值,我希望在保存之前访问旧值
我在这个链接中尝试了公认的答案:但它对我无效。你可以做:
// 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();
}
你可以做:
// 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();
}