我正在尝试使用 CaSTLe.ActiveRecord
对象的 OnFlushDirty
方法来实现通用的更改审计:
protected override bool OnFlushDirty(object id,
IDictionary previousState,
IDictionary currentState,
NHibernate.Type.IType[] types
)
在执行时,OnFlushDirty 会为每个 previousState
和 currentState
参数传递一个 CaSTLe.ActiveRecord.Framework.DictionaryAdapter
。
不幸的是 DictionaryAdapter
不支持 GetEnumerator()
方法,抛出一个 NotSupportedException
。
- 我是否应该首先将
DictionaryAdapter
传递给 OnFlushDirty?和
- 假设我应该这样做,我如何枚举
DictionaryAdapter
中的键/值对,以便比较以前和当前的状态以进行审计?
DictionaryAdapter
包含一个 Key 集合,可以使用 Key 正常枚举,然后应用 Key 来检索其 Value。
示例解决方案代码:
foreach (var entry in currentState.Keys)
{
Console.WriteLine(currentState[entry]);
}
我是一名优秀的程序员,十分优秀!