在更新对象值之前,EF 中是否有任何内容?
例如,当实体对象让我们说用户被保存时,我想在更新用户对象值之前知道用于记录目的。
谢谢,
如果您使用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