質問

監査ログの目的でオーバーライドします 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 それぞれ。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top