如何阻止NHibernate删除特定类的单个实体? 我目前使用的编程方式需要检查实体的唯一字段“名称”。
这是场景:我有一个人和一个团体。该小组可以有人和其他团体。如果尝试删除名为“Admins”的组,则由于我强制执行的事务级约束(特别是检查组的“Name”列/字段,因为它是唯一的),它不会被删除。所以没关系。
但是现在我想如果创建了另一个组并且“Admins”成为其中的一个子组,则检查将失败。这将意味着删除“管理员”。所以我正在寻找一种更好的方法,除了遍历父/子包容树,例如使用NHibernate
我不能使用类等范围限制,例如'class Mutable = false',我的意思是对某个类的一个或两个单独实体有一个只读限制。
此致
_NT
答案 0 :(得分:3)
您可以编写自己的IPreDeleteEventListener实现并挂钩到nhibernate的事件系统,以编程方式停止并删除实体。
This是使用侦听器的示例。