당신은 항상 당신의 자신의 주문이 DeleteEventListener를 사용하여 동작을 삭제 만들 수 있습니다 :이 DeleteEventListener은 다음 NHibernate에 설정 구성의 일부로서 등록 될 필요가
public class DeleteEventListener : DefaultDeleteEventListener
{
protected override void DeleteEntity(IEventSource session, object entity, EntityEntry entityEntry, bool isCascadeDeleteEnabled, IEntityPersister persister, ISet transientEntities)
{
Event event = entity as Event;
if (event != null && event.Transaction != null) throw new Exception("You can't delete this Event! Look! It has a Transaction!");
CascadeBeforeDelete(session, persister, entity, entityEntry, transientEntities);
CascadeAfterDelete(session, persister, entity, transientEntities);
}
}
. 세션 공장 요소 내에서 :
<event type="delete">
<listener class="myNamespaces.DeleteEventListener, myAssembly" />
</event>
나는이 특정 코드를 테스트하지 않았습니다하지만 문제가 발생할 경우 내가 도울 수 있도록 내 응용 프로그램에서 비슷한 코드가 있습니다.
감사합니다. 내 사건이 비즈니스 논리 요구 사항 일 가능성이 높기 때문에이 방법이 좋습니다. – nfplee