NHibernate-防止删除特定实体(即使其成为只读)

时间:2009-10-01 14:14:22

标签: c# database nhibernate parent-child readonly

如何阻止NHibernate删除特定类的单个实体? 我目前使用的编程方式需要检查实体的唯一字段“名称”。

这是场景:我有一个人和一个团体。该小组可以有人和其他团体。如果尝试删除名为“Admins”的组,则由于我强制执行的事务级约束(特别是检查组的“Name”列/字段,因为它是唯一的),它不会被删除。所以没关系。

但是现在我想如果创建了另一个组并且“Admins”成为其中的一个子组,则检查将失败。这将意味着删除“管理员”。所以我正在寻找一种更好的方法,除了遍历父/子包容树,例如使用NHibernate

我不能使用类等范围限制,例如'class Mutable = false',我的意思是对某个类的一个或两个单独实体有一个只读限制。

此致

_NT

1 个答案:

答案 0 :(得分:3)

您可以编写自己的IPreDeleteEventListener实现并挂钩到nhibernate的事件系统,以编程方式停止并删除实体。

This是使用侦听器的示例。