캐스케이드 삭제를 사용하여 일대 다 코드 매핑을 구현했습니다. 파일에 하위 엔티티를 연결했습니다. 하위 캐스케이드 삭제시 자동으로 파일을 삭제하고 싶습니다. 어떻게 구현할 수 있습니까?NHibernate : 캐스케이드 삭제에 대한 C# 액션
2
A
답변
1
NHibernate가 Listeners on Configuration 레벨을 지원한다는 것을 알게되었습니다. 완벽하지는 않지만 아무것도없는 것보다 낫다. 단순화 된 예 :
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
EmptyInterceptor에서 파생 된 ['IInterceptor'] (http://nhibernate.info/doc/nhibernate-reference/events.html#objectstate-interceptors)도 사용할 수 있습니다. 그러나 그것은 아마도 [이벤트] (http://nhibernate.info/doc/nhibernate-reference/events.html#objectstate-events)보다 좋지 않을 것입니다. –
시도한 코드 예제를 포함 할 수 있습니까? –