【发布时间】:2017-07-17 20:17:54
【问题描述】:
我已经通过级联删除实现了一对多的代码映射。我已将文件与子实体关联。我想在子级联删除时自动删除文件。 如何实现?
【问题讨论】:
-
也许您可以包含一些您尝试过的代码示例?
标签: c# nhibernate cascading-deletes mapping-by-code
我已经通过级联删除实现了一对多的代码映射。我已将文件与子实体关联。我想在子级联删除时自动删除文件。 如何实现?
【问题讨论】:
标签: c# nhibernate cascading-deletes mapping-by-code
我发现 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更好。