J'ai implémenté le mappage de code un-à-plusieurs avec une suppression en cascade. J'ai associé le fichier avec l'entité enfant. Je veux supprimer le fichier automatiquement sur la suppression de cascade enfant. Comment peut-il être implémenté?NHibernate: action C# sur la suppression de cascade
2
A
Répondre
1
J'ai découvert que NHibernate prend en charge les auditeurs au niveau de la configuration. Ce n'est pas parfait, mais mieux que rien. Exemple simplifié:
var deleteListener = new DeleteListener();
_configuration.SetListener(ListenerType.Delete, deleteListener);
class DeleteListener : DefaultDeleteEventListener {
public override void OnDelete(DeleteEvent e, ISet<object> transientEntities) {
MyEntity entity = e.Entity as MyEntity;
if (entity != null) {
// code for file deletion
}
base.OnDelete(e, transientEntities);
}
}
+1
Vous pouvez aussi utiliser un ['IInterceptor'] (http://nhibernate.info/doc/nhibernate-reference/events.html#objectstate-interceptors), dérivé de' EmptyInterceptor'. Mais ce ne serait probablement pas mieux que [événements] (http://nhibernate.info/doc/nhibernate-reference/events.html#objectstate-events). –
Peut-être que vous pourriez inclure des exemples de code que vous avez essayé? –