【发布时间】:2011-02-13 18:45:41
【问题描述】:
我有 2 个具有多对多关系的类。 我想要发生的是,每当我删除一侧时,关联记录将被删除,而不关心我删除哪一侧。
简化模型:
类:
class Qualification
{
IList<ProfessionalListing> ProfessionalListings
}
class ProfessionalListing
{
IList<Qualification> Qualifications
void AddQualification(Qualification qualification)
{
Qualifications.Add(qualification);
qualification.ProfessionalListings.Add(this);
}
}
带有覆盖的流畅自动映射:
void Override(AutoMapping<Qualification> mapping)
{
mapping.HasManyToMany(x => x.ProfessionalListings).Inverse();
}
void Override(AutoMapping<ProfessionalListing> mapping)
{
mapping.HasManyToMany(x => x.Qualifications).Not.LazyLoad();
}
我正在尝试级联和反向设置的各种组合,但永远无法实现。 如果我没有级联且没有反向,我的集合中会出现重复的实体。 在一侧设置 inverse 会使重复消失,但是当我尝试删除一个限定时,我得到一个“已删除的对象将被级联重新保存”。
我该怎么做?
我应该负责清除我删除的每个对象的关联吗?
【问题讨论】:
标签: .net nhibernate fluent-nhibernate many-to-many cascading-deletes