C# 聚合根的Fluent NHibernate级联删除约定
问题是:如果实体引用从类型C# 聚合根的Fluent NHibernate级联删除约定,c#,nhibernate,fluent-nhibernate,conventions,automapping,C#,Nhibernate,Fluent Nhibernate,Conventions,Automapping,问题是:如果实体引用从类型根继承,如何编写防止删除实体引用的约定 我正在使用fluent nhibernate和它的自动映射功能。默认情况下启用级联删除 一切都很酷,直到我最终遇到了需要实际删除引用另一个根的聚合根的情况 我得到了rootUser和Application用户寄存器应用程序。如果它是错误注册的,那么有一个很小的时间间隔,用户和角色管理员可以删除它(我确信我永远都不需要这些数据) 当用户删除应用程序时,由于级联删除,nhibernate删除用户本身(多么讽刺…) 我不确定如何仅为
根继承,如何编写防止删除实体引用的约定
我正在使用fluent nhibernate和它的自动映射功能。默认情况下启用级联删除
一切都很酷,直到我最终遇到了需要实际删除引用另一个根的聚合根的情况
我得到了rootUser
和Application
<代码>用户
寄存器应用程序
。如果它是错误注册的,那么有一个很小的时间间隔,用户
和角色管理员
可以删除它(我确信我永远都不需要这些数据)
当用户
删除应用程序
时,由于级联删除,nhibernate删除用户
本身(多么讽刺…)
我不确定如何仅为应用程序->用户关联指定SaveUpdate级联:
关键在于:
m.References(x=>x.RegisteredBy).Cascade.SaveUpdate(); //RegisteredBy.Type==User
此外,告诉fnh在哪里查找覆盖:
var m=new AutoPersistenceModel(storeCfg);
m.UseOverridesFromAssembly(assembly);
您可以覆盖应用程序->用户关联的级联行为。您需要设置SaveUpdate(),而不是全部删除孤立项。
要做到这一点,您需要实现
IAutomappingOverride
我又有点困惑了。在我的问题中添加了图片。