Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
NHibernate: Нужно ли делать new List() в конструкторе Entity для его коллекций?
|
|||
|---|---|---|---|
|
#18+
Добрый день, Столкнулся вчера с проблемой - из БД читался через Nhibernate 3 раза подряд один и тот же объект (Document) с коллекцией других объектов, в первый раз у него коллекция инициализировалась правильно, во второй и третий раз стиралась (становилась пустой). Конструктор объекта без параметров (NHibernate использует его для чтения из базы) был примерно такой Код: plaintext 1. 2. 3. 4. 5. Я только убрал из него создание new List(), и все заработало: варехаусы перестали очищаться при 2-м и 3-м запросах к базе. Я так понял, это потому, что NHibernate, видя, что на данное поле подсунули new List(), решил, что мы хотели стереть коллекцию. Однако непонятно, почему при первом запросе все работало. В некоем примере из Интернет, что у меня есть, коллекции создаются в любом случае: даже в конструкторе, который NHibernate вызывает при чтении из БД. Вопрос, почему у меня не работало? Сегодня попытался вернуть на место создание List(), как ни странно, при всех запросах коллекция оказывается правильной. (Впрочем, благодаря советам в соседней ветке удалось сократить количество запросов от программы во много раз и повысить производительность). Как правильно вообще-то? Сделать для entity конструктор без параметров только для NHibernate, или вызывать его из обычного конструктора (применяемого для создания новой сущности)? entity() {...} entity(param1, param2, param3):this() {...} допустим ли такой вариант? В какой из конструкторов класть создание пустых коллекций wareHouses = new List<WareHouse>(); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2011, 17:42 |
|
||
|
NHibernate: Нужно ли делать new List() в конструкторе Entity для его коллекций?
|
|||
|---|---|---|---|
|
#18+
NHibernate_User_Вопрос, почему у меня не работало? Трудно заниматься телепатией, но подозреваю, что вы где-то перезаписывали эту коллекцию новой. Надо было смотреть дебаггером сеттер свойства, или где-то еще перезаписывали поле в классе. NHibernate_User_Как правильно вообще-то? Делать, как я рисовал в соседней ветке, и не парится с множеством конструкторов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2011, 20:44 |
|
||
|
NHibernate: Нужно ли делать new List() в конструкторе Entity для его коллекций?
|
|||
|---|---|---|---|
|
#18+
Добавка: всегда создавать коллекции в конструкторе без параметров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2011, 20:45 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=37281155&tid=1350770]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
30ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 328ms |

| 0 / 0 |
