我對EF和MVC 4仍然很新,我在操作相當平凡的記錄更新時遇到了一些問題。 我想要做的事實質上是對記錄進行更改的歷史記錄,因此我經常需要在用新值覆蓋之前記錄該記錄的前一個值。遇到問題DBContext與編輯/更新MVC 4 EF c#
我已經遇到了獨特的關鍵問題,或者取決於我如何編碼db.savechanges()將創建一個額外的條目,當它只應該更新。
有關我在做什麼錯的任何想法?
感謝,
[HttpPost]
public ActionResult Edit(UrlRedirect urlredirect)
{
using (var db = new Context())
{
UrlRedirect old_url = db.UrlRedirects.Find(urlredirect.ID);
string notes = old_url.NewUrl;
if (ModelState.IsValid)
{
ChangeRecord cr = new ChangeRecord();
cr.Author = User.Identity.Name;
cr.Date = DateTime.Today;
cr.Change = "Modified";
cr.UrlRedirect = urlredirect;
cr.Notes = notes;
db.ChangeRecords.Add(cr);
db.Entry<UrlRedirect>(old_url).CurrentValues.SetValues(urlredirect);
db.Entry(old_url).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(urlredirect);
}
}
哪個字段是記錄的*關鍵字段*? –
@MichaelPerrenoud爲UrlRedirect表是'ID' –
@michaelperrenoud對不起,我的意思是我想要NewUrl字段 - 我已經指出我注意到 –