我有一个 3 级深的表层次结构(QualificaionType 有许多 QualificationGroups,它们有许多 Qualifications)映射如下:
// QualificationType
HasMany(x => x.QualificationGroups)
.Inverse()
.KeyColumns.Add("QualificationGroupId")
.AsBag()
.Cascade.AllDeleteOrphan()
.Access.CamelCaseField(Prefix.Underscore);
// Qualification Group
HasMany(x => x.Qualifications)
.Inverse()
.KeyColumns.Add("QualificationId")
.AsBag()
.Cascade.AllDeleteOrphan()
.Access.CamelCaseField(Prefix.Underscore);
当我删除一个资格组时,它会删除与其相关的所有资格。但是当我尝试删除资格类型时,它会尝试删除所有相关的资格组,但不会删除它们的资格。
我怎样才能让它一直向下级联,以便如果我删除一个类型,它会删除所有组及其所有资格?我是否需要先遍历所有组并删除它们?看来这应该能够仅通过映射来处理。
仅供参考,我正在使用 Fluent NHibernate 1.0RTM 和 NHibernate 2.1