2009-06-25 19 views

Antwort

1

Werfen Sie einen Blick auf NHibernate's IInterceptor.

OnFlushDirty - zeigt Ihnen persistente Eigenschaften für ein aktualisiertes Objekt.

OnSave - zeigt Ihnen persistent Eigenschaften für ein gespeichertes Objekt.

Sie müssen nur eine Interceptor-Klasse erstellen, die diese Schnittstelle implementiert, und wenn Sie Ihre NHibernate-Sitzung konfigurieren, sagen Sie ihr, dass sie diese Klasse verwenden soll.

Here is a fairly good article to help you get started

1

Ich denke, als Abfangjäger ein bisschen veraltet sind. Verwenden Sie NHibernate-Ereignisse. Ich habe ein OnPreUpdate-Ereignis abonniert. Sein Parameter hat State- und OldState-Eigenschaften, aber OldState ist immer Null. Weiß jemand, dass dieser OldState überhaupt funktioniert?

+1

Wenn Sie 'session.Merge (yourUnsavedObject) 'aufrufen, lädt NHibernate zuerst die Entität und anschließend Änderungen aus dem nicht gespeicherten Objekt. Dieser Prozess füllt dann OldValues. Dies verwendet Version 3.1. Ich glaube, frühere Versionen verwendeten SaveOrUpdateCopy(). –

Verwandte Themen