2017-02-27 6 views
2

カスケード削除を使用して1対多のコードマッピングを実装しました。子エンティティにファイルを関連付けました。子カスケード削除時にファイルを自動的に削除したい どのように実装できますか?NHibernate:カスケード削除に関するc#アクション

+1

多分あなたが試したいくつかのコード例を含めることができますか? –

答えて

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)よりも良くないでしょう。 –

関連する問題