I've implemented one-to-many code mapping with cascade deletion. I have associated file with child entity. I want to delete file automatically on child cascade deletion. How can it be implemented?
I found out that NHibernate supports Listeners on Configuration level. It's not perfect, but better than nothing. Simplified example:
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);
}
}