Привет, у меня есть один ко многим ComplianceSet -> ComplianceItem. ComplianceItem имеет один ко многим ComplianceItem -> ComplianceItemInstance.
у меня есть
набор соответствия
HasMany(x => x.GetUserComplianceItems()).Inverse().Access.CamelCaseField(Prefix.Underscore).LazyLoad().Cascade.AllDeleteOrphan();
И
пункт соответствия
HasMany(x => x.GetUserComplianceItemInstances()).Inverse().Access.CamelCaseField(Prefix.Underscore).LazyLoad().Cascade.AllDeleteOrphan();
Тогда в моем коде у меня есть
userComplianceSet.GetUserComplianceItems().FirstOrDefault(....);
...
userComplianceItem.RemoveUserComplianceItemInstance(userComplianceItemInstance);
этот код возвращает
удаленный объект будет повторно сохранен каскадно (удалить удаленный объект из ассоциаций)[DecisionCritical.Core.Domain.UserComplianceSet#12]
Теперь это очень расстраивает. Если я удалю каскад из обеих коллекций, код вернет успех, но БД покажет, что он ничего не сделал. поле ComplianceItemInstance.ComplianceItemId по-прежнему заполнено, и, конечно, элемент все еще существует. В любом случае, я просто хочу иметь возможность удалить дочерний элемент из коллекции, вызвать save для объекта, содержащего коллекцию, и избавиться от этой чертовой штуки. Я пробовал всевозможные перестановки каскада, сохранения (сохранения набора, сохранения элемента), добавления удаления в ComplianceItemInstance и т. д. и не могу заставить это работать.
Пожалуйста помоги