Свободная сущность Nhibernate, на которую ссылаются несколько, имеет много связей: каскадное удаление не работает - PullRequest
1 голос
/ 21 марта 2012

У меня есть сценарий с 3-мя объектами A, B и C.

A имеет много CB, имеет много C

C имеет AC, имеет B

У меня естьметод на A, AddC, который обрабатывает жизненный цикл C.

, поэтому, например, у меня есть A, у которого много C, и я хочу удалить C (1) и добавить C (2).Если C (1), который я хочу удалить, имеет ссылку на B, я получаю доступ к B через мой экземпляр C (1) и удаляю B из этой коллекции.Затем я удаляю C (1) из коллекции на A. Затем я добавляю новый C (2) к коллекциям на A и B.

Я могу по желанию установить свойства на C (1), которые указывают наA и B будут нулевыми.

Я пытаюсь выяснить, как я могу настроить свое отображение так, чтобы C (1) был удален после того, как я вызову этот метод, и мой сеанс сбрасывается.

Я попытался отобразить cascadeAllDeleteOrphan на A, B и A, B.Я попытался поиграть с Inverse / NotInverse, но поскольку я использую только один метод для обновления отношений между этими тремя объектами, мне не особо важно, какой конец управляет отношениями.Я также попытался оставить свойства C (1) установленными для экземпляров A и B, и оставить отображение для A и B имеет HasMany (c) .Not.Inverse.

Конечный результат заключается в том, что мойC не удаляются правильно.

Есть ли что-то, что я здесь упускаю?

Дайте мне знать, если вы хотите сценарий с реальными именами.Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...