Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
NHibernate - как создать связь один-к-одному?
|
|||
|---|---|---|---|
|
#18+
Добрый день, Интересуюсь мнением специалистов, Мы хотим сделать в NH следующее: У объекта есть коллекция подобъектов, замаплена как 1:М bidirectional, с одной стороны Cascade.All(), с другой Inverse() Есть поле в объекте - текущий подобъект из коллекции. Мы хотим, чтобы это все мапилось. Притом создаются сразу 2 несохраненных объекта: главный и один подобъект. Таким образом, сначала в коллекции один элемент. Поле "текущий" смотрит на него же. А потом пытаемся сохранить. NH выдает ошибку: not-null property references a null or transient value <lalal> Так как у главного объекта 2 поля: "текущий эл" (reference, not null, он-то и выдает ошибку) и "коллекция". А у подобъекта одно поле "родитель", оно связано с коллекцией. Когда ставим полю "текущий эл" not-null, все работает и сохраняется. Но это же нехорошо - реально оно никогда не null, просто иногда указывает на несохраненный объект. Вот маппинги, типы я назвал Main и Sub Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Вот маппинги Fluent Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Черные стрелочки - коллекция, зеленые - элементы коллекции указывают на родителя, так как Inverse, то за сохранение отвечает именно поле с зеленой стрелочкой (по его значению судят о вхождении или невхождении элемента в коллекцию, а не по черной стрелке), синяя - текущий элемент коллекции, вот когда я ее добавил, проблемы и возникли. Как замапить такую ситуацию в NHibernate ?? Ведь здесь есть гуру, я точно знаю! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2011, 15:16 |
|
||
|
NHibernate - как создать связь один-к-одному?
|
|||
|---|---|---|---|
|
#18+
зачем вам bidirectional ??? выкиньте его нафиг, это туго потдерживается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2011, 15:57 |
|
||
|
NHibernate - как создать связь один-к-одному?
|
|||
|---|---|---|---|
|
#18+
NHibernate_User_, код классов давайте, и как сохраняете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2011, 16:27 |
|
||
|
NHibernate - как создать связь один-к-одному?
|
|||
|---|---|---|---|
|
#18+
SolYUtor, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. На момент сохранения Sub указывает на Main, коллекция внутри Main состоит из 1 элемента Sub, и на него же указывает поле CurrentSub. Сохраняем просто, через UnitOfWork. К сожалению, его писал не я. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2011, 20:00 |
|
||
|
|

start [/forum/topic.php?fid=17&gotonew=1&tid=1350678]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
56ms |
get topic data: |
6ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 337ms |

| 0 / 0 |
