監査ログの目的で、EF 4.1 Database-FirstアプローチでSaveChanges()
メソッドをオーバーライドします。Entity FrameworkのObjectStateEntryからすべてのキーとその値を取得する
私はすべての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
}
}
ありがとう、主キーと外部キーだけを取得する方法はありますか? – Mostafa