在NHibernate PostUpdateEvent中添加新实体

时间:2009-08-10 13:36:30

标签: .net nhibernate

如何在处理PostUpdateEvent事件时使用NHibernate添加新的实体对象?我已经实现了一个审计处理程序,它基本上在OnPostUpdate处理程序中创建了一个新对象,并尝试插入数据库。

但是,它实际上似乎没有在任何时候提交。如果我启动一个新事务并在OnPostUpdate处理程序中提交它,它会递归并给出堆栈溢出。

有什么想法吗?

谢谢,

吉姆

1 个答案:

答案 0 :(得分:1)

我认为PostUpdateEvent在处理管道中为时已晚,无法满足您的需求。我见过的示例(例如http://nhforge.org/wikis/howtonh/creating-an-audit-log-using-nhibernate-events.aspxhttp://ayende.com/Blog/archive/2009/04/29/nhibernate-ipreupdateeventlistener-amp-ipreinserteventlistener.aspx)使用PreUpdateEvent。如果您打开了数据库事务,那么您将确保仅在主更新成功时才写入审计详细信息,即使您可以使用更新前事件而不是事件更新后事件。

干杯, 约翰