Для целей ведения журнала аудита я переопределяю метод SaveChanges()
в подходе EF 4.1 Database-First.
У меня есть весь объект ObjectStateEntry, и мне интересно, смогу ли я получить все ключи и их значения из каждого ObjectStateEntry.
IEnumerable<ObjectStateEntry> changes = this.ObjectStateManager.GetObjectStateEntries(EntityState.Added | EntityState.Deleted | EntityState.Modified);
foreach (ObjectStateEntry stateEntryEntity in changes)
{
if (!stateEntryEntity.IsRelationship &&
stateEntryEntity.Entity != null &&
!(stateEntryEntity.Entity is DBAudit))
{
list<object , object> KeyValues = GetAllKeyValues(stateEntryEntity );
//Do log all keyvalues
}
}