【问题标题】:NHibernate: c# action on cascade deletionNHibernate:级联删除的c#操作
【发布时间】:2017-07-17 20:17:54
【问题描述】:

我已经通过级联删除实现了一对多的代码映射。我已将文件与子实体关联。我想在子级联删除时自动删除文件。 如何实现?

【问题讨论】:

  • 也许您可以包含一些您尝试过的代码示例?

标签: c# nhibernate cascading-deletes mapping-by-code


【解决方案1】:

我发现 NHibernate 在配置级别支持监听器。它并不完美,但总比没有好。简化示例:

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);
    }
}

【讨论】:

  • 你也可以使用IInterceptor,从EmptyInterceptor派生。但这可能不会比events更好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-12
  • 2011-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多