nhibernate: удалить объект из коллекции, не удаляя его - PullRequest
0 голосов
/ 15 сентября 2011

Допустим, у нас есть объекты SPACE_SHIP и WEAPON.SPACE_SHIP имеет одно первичное ОРУЖИЕ и набор вторичного ОРУЖИЯ.Я хотел бы переключить основной и один из вторичного ОРУЖИЯ, как я могу это сделать?

Если я:Удалить (theSecondaryWeaponToSwitch)

Произошла ошибка NHibernate ... Что мне делать?

Контекст: NHibernate 1.2, C # 3.5

1 Ответ

1 голос
/ 15 сентября 2011

Скорее всего, вы нанесли на карту cascade="all-delete-orphan".При этом NH удаляет все экземпляры, которые были удалены из коллекции.Если вы попытаетесь использовать этот экземпляр в другой коллекции, NH пожалуется.

NH не реализует «постоянную сборку мусора» для автоматического определения, на какие экземпляры ссылаются, а на какие нет.Это будет слишком сильное влияние на производительность.«delete-orphan» - это упрощенная версия, которая работает во многих простых случаях, но не работает, если вы перемещаете экземпляры.

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