2

在更新对象值之前,EF 中是否有任何内容?

例如,当实体对象让我们说用户被保存时,我想在更新用户对象值之前知道用于记录目的。

谢谢,

4

1 回答 1

4

如果您使用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
于 2012-06-28T18:09:28.580 回答