问题是:如果从 type 继承,如何编写防止删除实体引用的约定Root
?
我正在使用流利的 nhibernate 和它的自动映射功能。默认开启级联删除。
一切都非常酷,直到我最终遇到了我需要实际删除引用另一个聚合根的情况。
我有根User
和Application
. User
注册Applications
。User
如果它被错误地注册了,那么角色可以删除它的时间间隔很小Admin
(我很确定我永远不需要这些数据)。
当User
removes时Application
,由于级联删除,nhibernate 会User
自行删除(具有讽刺意味的是......)。
我不确定如何仅为 Application->User 关联指定 SaveUpdate 级联:
诀窍:
m.References(x=>x.RegisteredBy).Cascade.SaveUpdate(); //RegisteredBy.Type==User
此外,告诉 fnh 在哪里寻找覆盖:
var m=new AutoPersistenceModel(storeCfg);
m.UseOverridesFromAssembly(assembly);