问题是:如果实体引用继承自类型,如何编写防止删除该引用的约定 Root ?
Root
我使用的是fluent nhibernate,它是自动映射功能。默认情况下启用层叠删除。
我有根了 User 和 Application 用户 寄存器 Applications 用户 带角色 Admin
User
Application
用户
Applications
Admin
什么时候? 用户 删除 应用程序 ,由于层叠删除,nhibernate删除 本身(多么讽刺……)。
应用程序
我不确定如何为应用程序指定SaveUpdate层叠->仅用户关联:
诀窍在于:
m.References(x=>x.RegisteredBy).Cascade.SaveUpdate(); //RegisteredBy.Type==User
var m=new AutoPersistenceModel(storeCfg); m.UseOverridesFromAssembly(assembly);
您可以覆盖应用程序关联的级联行为。您需要设置SaveUpdate()而不是所有delete孤儿。 为此,您需要实现 IAutomappingOverride<Application>
IAutomappingOverride<Application>