|
NHibernate: один-ко-многим, PersistentGenericSet, NullReferenceException
|
|||
---|---|---|---|
#18+
Товарищи, уже затер гугл до дыр, но не нашел решения своей проблемы. Есть у меня такая картина: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31.
В случае, когда коллекция B не пустая - все замечательно. НО когда записей нет, то я получаю объект типа NHibernate.Collection.Generic.PersistentGenericSet<B>, причем с неинициализированными полями, т.е. .Count выдает мне NullReferenceException, но A.Bs != null. Подскажите, пожалуйста, как с таким бороться. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2012, 21:32 |
|
NHibernate: один-ко-многим, PersistentGenericSet, NullReferenceException
|
|||
---|---|---|---|
#18+
islanov, как-то не верится. Код покажите, где случается NRE. Может у вас NRE на чём-то другом падает? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2012, 10:37 |
|
NHibernate: один-ко-многим, PersistentGenericSet, NullReferenceException
|
|||
---|---|---|---|
#18+
SolYUtor, Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2012, 16:32 |
|
NHibernate: один-ко-многим, PersistentGenericSet, NullReferenceException
|
|||
---|---|---|---|
#18+
islanov, Полный стектрейс? Многопоточность в ходу? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2012, 17:19 |
|
NHibernate: один-ко-многим, PersistentGenericSet, NullReferenceException
|
|||
---|---|---|---|
#18+
SolYUtor, Никакой много поточности. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Я так понимаю, что в NHibernate.Collection.PersistedSet.Set = null . Соответственно NRE при: Код: c# 1. 2. 3. 4. 5.
Попробовал .Not.LazyLoad(), но не помогло ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2012, 17:24 |
|
NHibernate: один-ко-многим, PersistentGenericSet, NullReferenceException
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2012, 17:52 |
|
NHibernate: один-ко-многим, PersistentGenericSet, NullReferenceException
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2012, 19:03 |
|
NHibernate: один-ко-многим, PersistentGenericSet, NullReferenceException
|
|||
---|---|---|---|
#18+
Deza, Нет, ну по делу было бы лучше :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2012, 19:03 |
|
NHibernate: один-ко-многим, PersistentGenericSet, NullReferenceException
|
|||
---|---|---|---|
#18+
islanovDeza, Нет, ну по делу было бы лучше :) пока не приходилось работать с NHibernate, так что сказать нечего, кроме выше написанного:) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2012, 19:08 |
|
NHibernate: один-ко-многим, PersistentGenericSet, NullReferenceException
|
|||
---|---|---|---|
#18+
Источник проблемы был локализован: переопределенные Equals() и GetHashCode(). В них у меня сравнивались/считались хэши всех 40+ полей. Оставил только такой вариант: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
Где id - Guid, tid - integer. В связи с этим 2 вопроса: 1. Могут ли возникнуть какие-то проблемы при сравнении объектов из-за отсутствия сравнения/хэша остальных полей? Я так понял что это как-то связанно с сессиями. 2. В каких случаях необходимо плодить множество сессий NHibernate или можно обойтись одной? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2012, 15:01 |
|
|
start [/forum/topic.php?fid=17&fpage=33&tid=1350311]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
70ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
others: | 9ms |
total: | 184ms |
0 / 0 |