Entity Framework の ObjectStateEntry からすべてのキーとその値を取得する
-
28-10-2019 - |
質問
監査ログの目的でオーバーライドします SaveChanges()
EF 4.1 データベースファースト アプローチのメソッド。
すべての 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
}
}
解決
テストはしていませんが、次のように動作するはずです: ジェネラコディセタグプレ
他のヒント
使ってみてください ObjectStateEntry.EntityKey
そして EntityKey.EntityKeyValues
:
var keyValues = stateEntityEntry.EntityKey.EntityKeyValues;
の配列を返します エンティティキーメンバー. 。その後、 Key
そして Value
プロパティ。 string
そして object
それぞれ。
所属していません StackOverflow