Хорошо, я новичок в NHibernate, так что, может быть, кто-то здесь может объяснить это.У меня есть 3 таблицы / сущности:
- Приложения
- Роли
- ApplicationRoles
Как это звучит, ApplicationRoles - это таблица поиска, котораяимеет внешние ключи для Applications и Roles, а также для некоторых других полей, таких как IsActive.
Теперь в коде ApplicationRole есть ссылка на обоих родителей - Application и Role.А объект Application имеет List, поэтому он может ссылаться на дочерние объекты ApplicationRole.Роль нет, но я попытался добавить ее, и это, похоже, не имеет значения.
Проблема, с которой я столкнулся, заключается в том, что я не могу загрузить объект ApplicationRole напрямую, манипулировать им и сохранить его снова.Я могу загрузить объект либо по его собственному PK, либо по обоим FK, и я могу изменить его поле IsActive, но когда я сохраняю его обратно в базу данных, я получаю сообщение об ошибке «коллекция не обработана с помощью flush» в объекте Application иэто другие дочерние коллекции.
Я думаю, что это может быть связано с отложенной загрузкой, поскольку этого не произойдет, если я использую отладчик и проверяю родительскую ссылку Application объекта, сохранение проходит нормально.Но если я не получаю, я получаю вышеупомянутую ошибку.
Если я загружаю объект Application и манипулирую его дочерним объектом ApplicationRole и сохраняю само приложение, это работает, но я чувствую, что не долженсделать это.
РЕДАКТИРОВАТЬ: уточнил отношения данных