У меня есть 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();
}
Я пробую различные комбинации каскадных и обратных настроек, но никогда не смогу их найти.
Если у меня нет каскадов и нет инверсии, я получаю дублированные объекты в моих коллекциях.
Установка инверсии на одной стороне устраняет дублирование, но когда я пытаюсь удалить квалификацию, я получаю «удаленный объект будет повторно сохранен каскадом».
Как мне это сделать?
Должен ли я отвечать за очистку ассоциаций каждого удаляемого объекта?