2009-08-10 6 views
1

Comment ajouter un nouvel objet entité à l'aide de NHibernate lors de la gestion d'un événement PostUpdateEvent? J'ai implémenté un gestionnaire d'audit qui crée essentiellement un nouvel objet dans le gestionnaire OnPostUpdate et tente d'insérer dans la base de données.Ajout d'une nouvelle entité dans NHibernate PostUpdateEvent

Cependant, il ne semble pas réellement être engagé à aucun moment. Si je démarre une nouvelle transaction et la valide dans le gestionnaire OnPostUpdate, elle est récursive et provoque un débordement de pile.

Des idées?

Merci,

Jim

Répondre

1

je pense que PostUpdateEvent est trop tard dans le pipeline de traitement pour ce que vous voulez. Les exemples que j'ai vus (par exemple http://nhforge.org/wikis/howtonh/creating-an-audit-log-using-nhibernate-events.aspx et http://ayende.com/Blog/archive/2009/04/29/nhibernate-ipreupdateeventlistener-amp-ipreinserteventlistener.aspx) utilisent PreUpdateEvent. Si vous avez ouvert une transaction de base de données, vous êtes sûr que les détails de l'audit sont écrits uniquement lorsque la mise à jour principale a réussi, même si vous pouvez utiliser des événements avant et après la mise à jour.

Cheers, John

Questions connexes