你如何在NHibernate中审核更改的集合?

时间:2010-10-11 15:58:33

标签: nhibernate

我一直在使用IPreUpdateEventListener审核实体,特别是使用FindDirty方法查找更改的属性:

public bool OnPreUpdate(PreUpdateEvent updateEvent)
{ 
    int[] dirtyFieldIndices = updateEvent.Persister.FindDirty(updateEvent.State, updateEvent.OldState, updateEvent.Entity, updateEvent.Session);
    // Get changed property names and audit...
}

这适用于简单属性。但是,我的实体具有其他实体的集合属性。其中一个实体已更改,更改将保持不变,但FindDirty不会为我提供该集合属性的索引。是否有任何方法可以获取已更改的属性以审核此更改?

1 个答案:

答案 0 :(得分:-1)

我决定在我的域对象上有一个接收OldState集合的方法,并在其上应用自己的处理,检查每个对象以查看它是否已更改。