Sie benutzerdefinierte Interceptor schreiben können, die mit folgenden Signatur public override bool OnLoad (Objekt Einheit, Objekt-ID, Object [] Zustand, string [] property, IType [] Typen)
dann Sie onsave Methode gibt Sie können doppelte Prüflogik innerhalb dieser Methode haben. (Z. B. indem das Wörterbuch aller für diesen Typ bereits vorhandenen IDs beibehalten wird)
Alternativ können Sie Ihren doppelten Prüfcode direkt in die benutzerdefinierte Implementierung von ISaveEventListner einbinden. Sie müssen Ihren benutzerdefinierten Ereignislistener zum Zeitpunkt der Konfiguration von nhibernate registrieren. Hier ist Schnipsel für Ref
Configuration cfg = new Configuration();
ISaveEventListener[] stack = new ISaveEventListener[] { new MySaveListener(), new DefaultSaveEventListener() };
cfg.EventListeners.SaveEventListeners = stack;
Da ich dieses Problem vorbei gegangen bin, habe ich keine Möglichkeit zu überprüfen, ob dies korrekt ist. Wenn jemand es überprüfen kann, werde ich die Antwort akzeptieren. –