Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
NHibernate. Вычисляемые поля
|
|||
|---|---|---|---|
|
#18+
Добрый день. Столкнулся с проблемой следующего рода. Есть класс, описывающий характеристики устройства Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Порядок расчета A.CalculatedProperty: Код: plaintext 1. 2. from, to - даты по которым фильтруется список. Нужно получить список IList<A>, отфильтрованный по параметрам a1, a2, from, to; отсортированный по вычисляемому полю CalculatedProperty; записи с n по m. Подскажите куда копать? CreateMultiCriteria? ХП? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2011, 10:47 |
|
||
|
NHibernate. Вычисляемые поля
|
|||
|---|---|---|---|
|
#18+
skon, Честно говоря, не очень понял чего вы хотите. Если CalculatedProperty должно вычисляться в БД, то смотрите на атрибут formula в маппинге свойства. Пример есть тут . Если его надо вычислять на клиете C#-кодом - то вообще не вижу проблемы: пишите нужные вам вычисления. Отсортировать IList<T> не проблема. MultiCriteria принципиально вам ничем не поможет, т.к. просто позволяет выполнить за один поход к БД несколько запросов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2011, 12:30 |
|
||
|
NHibernate. Вычисляемые поля
|
|||
|---|---|---|---|
|
#18+
SolYUtorskon, Честно говоря, не очень понял чего вы хотите. Если CalculatedProperty должно вычисляться в БД, то смотрите на атрибут formula в маппинге свойства. Пример есть тут . Если его надо вычислять на клиете C#-кодом - то вообще не вижу проблемы: пишите нужные вам вычисления. Отсортировать IList<T> не проблема. MultiCriteria принципиально вам ничем не поможет, т.к. просто позволяет выполнить за один поход к БД несколько запросов. Не пеняйте уж сильно новичка). 1. За пример спасибо, в общем-то то, что нужно за небольшим уточнением. Как быть с параметрами? Для того, чтобы рассчитать это поле мне нужно передать туда @DateFrom и @DateTo Отсортировать то не проблема, проблема получить записи с n по m, отсортированные по этому полю + реальный объем данных (порядка 1к объектов A и 1М объектов B). Загрузить все, рассчитать, отсортировать и оставить нужное - слишком накладная операция, хочется загружать только то, что отображается на странице грида (записи с n по m) . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2011, 13:00 |
|
||
|
NHibernate. Вычисляемые поля
|
|||
|---|---|---|---|
|
#18+
skon, готового решения у меня для вас нет. Но могу помочь информацией к размышлению. A.List<B> для NHibernate не просто список в свойстве, а отношение между сущностями. Поэтому если вы его пофильтурете, а потом вызовете Session.Flush() - отфильтрованные записи будут удалены из отношений (а может и из бд, смотря что там у вас намаплено). Если вам надо в грид запихнуть только часть полей + какие-то вычисление - то рекомендую рассмотреть проекции + hql-запросы. Примеры смотрите в документации. Да и постраничная выборка в NHibernate уже реализована. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2011, 13:20 |
|
||
|
NHibernate. Вычисляемые поля
|
|||
|---|---|---|---|
|
#18+
SolYUtorskon, готового решения у меня для вас нет. Но могу помочь информацией к размышлению. A.List<B> для NHibernate не просто список в свойстве, а отношение между сущностями. Поэтому если вы его пофильтурете, а потом вызовете Session.Flush() - отфильтрованные записи будут удалены из отношений (а может и из бд, смотря что там у вас намаплено). Если вам надо в грид запихнуть только часть полей + какие-то вычисление - то рекомендую рассмотреть проекции + hql-запросы. Примеры смотрите в документации. Да и постраничная выборка в NHibernate уже реализована. Спасибо. Тут ведь главное в правильном направлении начать разбираться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2011, 13:25 |
|
||
|
NHibernate. Вычисляемые поля
|
|||
|---|---|---|---|
|
#18+
А почему нельзя так? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2011, 12:57 |
|
||
|
NHibernate. Вычисляемые поля
|
|||
|---|---|---|---|
|
#18+
vitali.podobed, Можно, но есть нюансы: skonОтсортировать то не проблема, проблема получить записи с n по m, отсортированные по этому полю + реальный объем данных (порядка 1к объектов A и 1М объектов B). Загрузить все, рассчитать, отсортировать и оставить нужное - слишком накладная операция, хочется загружать только то, что отображается на странице грида (записи с n по m) . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2011, 13:08 |
|
||
|
NHibernate. Вычисляемые поля
|
|||
|---|---|---|---|
|
#18+
SolYUtorvitali.podobed, Можно, но есть нюансы: skonОтсортировать то не проблема, проблема получить записи с n по m, отсортированные по этому полю + реальный объем данных (порядка 1к объектов A и 1М объектов B). Загрузить все, рассчитать, отсортировать и оставить нужное - слишком накладная операция, хочется загружать только то, что отображается на странице грида (записи с n по m) . дак вроде акцессор ленивый, он сработает только при вставке итема в таблицу, а в коллекции будет молчать. или я опяит четне так понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2011, 13:21 |
|
||
|
NHibernate. Вычисляемые поля
|
|||
|---|---|---|---|
|
#18+
Где-то в степи, 1k объектов А, и 1М объектов B. В оном коде все эти радости будут тащится на клиента. Хотя реально надо несколько значений. Добавьте проблему select N+1 для полного счастья. Ждать придётся доооолго. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2011, 15:53 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=37101923&tid=1350782]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 360ms |

| 0 / 0 |
