こんにちは、1 対多の ComplianceSet -> ComplianceItem があります。ComplianceItem には、1 対多の 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 への削除の追加を試しましたが、これを機能させることができません。
助けてください