多対多の関係を持つ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();
}
カスケード設定と逆設定のさまざまな組み合わせを試していますが、そこに到達できません。カスケードも逆もない場合、コレクション内にエンティティが重複します。片側に逆を設定すると重複がなくなりますが、資格を削除しようとすると、「削除されたオブジェクトはカスケードによって再保存されます」というメッセージが表示されます。
どうすればいいですか?
削除する各オブジェクトの関連付けをクリアする責任はありますか?