如何在处理PostUpdateEvent事件时使用NHibernate添加新的实体对象?我已经实现了一个审计处理程序,它基本上在OnPostUpdate处理程序中创建了一个新对象,并尝试插入数据库。
但是,它实际上似乎没有在任何时候提交。如果我启动一个新事务并在OnPostUpdate处理程序中提交它,它会递归并给出堆栈溢出。
有什么想法吗?
谢谢,
吉姆
答案 0 :(得分:1)
我认为PostUpdateEvent在处理管道中为时已晚,无法满足您的需求。我见过的示例(例如http://nhforge.org/wikis/howtonh/creating-an-audit-log-using-nhibernate-events.aspx和http://ayende.com/Blog/archive/2009/04/29/nhibernate-ipreupdateeventlistener-amp-ipreinserteventlistener.aspx)使用PreUpdateEvent。如果您打开了数据库事务,那么您将确保仅在主更新成功时才写入审计详细信息,即使您可以使用更新前事件而不是事件更新后事件。
干杯, 约翰