とにかくEFにオブジェクトの値を更新する前に持っている必要がありますか?
たとえば、エンティティオブジェクトの場合、ユーザーが保存されているとしましょう。ユーザーオブジェクトの値を更新する前に、ログ記録の目的で知りたいです。
ありがとう、
とにかく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