2009-08-10 50 views
1

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

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

任何想法?

感谢,

吉姆

回答

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。如果您打开了一个数据库事务,那么即使您可能使用预更新而不是更新后事件,您仍然可以确定仅在主更新成功时才写入审核详细信息。

干杯, 约翰