2
我有一个文档库站点,并且希望在编辑文档对象时发送电子邮件,其中包含更改的摘要。使用DBContext Entry.OriginalValues和Entry.NewValues录制更改的值
数据库交互使用的DbContext
代码第一次实体框架这是我到目前为止有:
[HttpPost]
public ActionResult Edit(Document document, bool sendEmail, string commentsTextBox)
{
if (ModelState.IsValid)
{
docsDB.Entry(document).State = EntityState.Modified;
foreach (string propertyName in docsDB.Entry(document).OriginalValues.PropertyNames)
{
var OriginalValue = docsDB.Entry(document).OriginalValues.GetValue<object>(propertyName);
var NewValue = docsDB.Entry(document).CurrentValues.GetValue<object>(propertyName);
if (!OriginalValue.Equals(NewValue))
{
//capture the changes
}
}
docsDB.SaveChanges();
if (sendEmail)
{
//sends email
}
return RedirectToAction("Index");
}
然而,OriginalValue和newValue都是一样的 - 更新的值。
有没有什么办法能够像写入文件一样,在POST之前捕获文档的状态?
非常感谢!这解决了这个问题。 – 2012-02-07 18:26:39