在EF中是否有更新对象的值?
e.g。当实体对象让我们说用户被保存时,我想知道更新用户对象值之前的记录目的。
谢谢,
答案 0 :(得分:3)
如果您使用ObjectContext
(edmx),则可以订阅SavingChanges
活动。
context.SavingChanges += context_SavingChanges;
这样可以在执行SaveChanges()
时访问原始值和当前值:
private void context_SavingChanges (object sender, EventArgs e)
{
ObjectContext context = sender as ObjectContext;
if (context != null)
{
foreach (ObjectStateEntry entry in context.ObjectStateManager
.GetObjectStateEntries(EntityState.Modified))
{
// TODO: do some logging with these values.
entry.OriginalValues;
entry.CurrentValues;
}
}
}
如果你使用DbContext,你可以通过
进入活动((IObjectContextAdapter)this).ObjectContext.SavingChanges