NHibernate каскадного удаления другого родителя - PullRequest
0 голосов
/ 22 декабря 2010

У меня есть A, B и C

B - это потомок A
C - это потомок B, но B не является родителем C (то есть не имеет 'have-a' C -односторонние отношения)

C каскады удаляются в B

, поэтому, если I:

Session.Delete(C);

B будет удалено, однако A все еще имеет ссылку на него, а Iполучить исключение "будет спасено".Есть ли что-нибудь вокруг этого, не удаляя B из коллекции A первым?(что не является серьезной проблемой, просто добавляет дополнительный код, который я не вижу по необходимости).

1 Ответ

1 голос
/ 22 декабря 2010

Есть ли что-нибудь подобное без предварительного удаления B из коллекции A?

Нет. Экземпляр B остается в коде даже после того, как он был удален из базы данных. Удалить действительно означает сделать непостоянным, когда сеанс сброшен. Если A имеет экземпляр B в коллекции с включенным каскадированием, он будет повторно вставлен после удаления.

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