Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
18.03.2012, 14:21
|
|||
---|---|---|---|
|
|||
Nhibernate - реализация поиска |
|||
#18+
Есть таблица с большим количеством связей (1*n, n*m) и записей. Нужно организовать поиск записей в этой таблице, используя все текстовые поля этой таблицы и связанных. Результат выводить пэйджингом. В хранимой процедуре я создавал временную таблицу, состоящую из конкатенации всех текстовых полей этой таблицы и связанных таблиц и идентификатора записи, затем использовал LIKE. Как подобный механизм можно реализовать в Nhibernate? В особенности интересует: придется ли сначала все записи тянуть с sql-сервера на web-сервер, а только затем в коде делать поиск? Если так, то весьма прискорбно. И интересует вопрос, как NHibernate работает внутри: транслирует код в sql-запросы как linq2sql? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.03.2012, 23:16
|
|||
---|---|---|---|
Nhibernate - реализация поиска |
|||
#18+
oblomov86В хранимой процедуре я создавал временную таблицу, состоящую из конкатенации всех текстовых полей этой таблицы и связанных таблиц и идентификатора записи, затем использовал LIKE. Сколько же длилось формировние таблицы и поиск по ней? oblomov86Как подобный механизм можно реализовать в Nhibernate? Боюсь, это не тот механизм, который следует использовать в NHibernate. Для этих целей лучше использовать полнотекстовый поиск. Вкратце, для NHibernate есть проект - NHibernate.Search, который использует Lucene.Net для организации полнотекстового поиска. Теорию можно прочитать здесь . Краткое практическое введение здесь . PS. На крайняк NHibernate может маппить результаты выполнения хранимых процедур и обычных SQL-запросов. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.03.2012, 17:44
|
|||
---|---|---|---|
|
|||
Nhibernate - реализация поиска |
|||
#18+
Спасибо. Возможно ли в NHibernate отключать "ленивую загрузку" во время выполнения? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.03.2012, 15:02
|
|||
---|---|---|---|
Nhibernate - реализация поиска |
|||
#18+
oblomov86, Вот прям отключать во время выполнения нельзя. Но при написании запросов можно указывать, чтобы хибер грузил связанные сущности и коллекции одним запросом. В hql - это слово fetch. Например: Код: c# 1. 2. 3.
Для LINQ и QueryOver ищите методы расширения, в которые оно входит. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.03.2012, 11:11
|
|||
---|---|---|---|
|
|||
Nhibernate - реализация поиска |
|||
#18+
Вот, а как это сделать через маппинг, не через Query? То есть что надо написать в маппинге, чтобы данное поле всегда грузилось? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=17&tablet=1&tid=1350410]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
108ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 214ms |
0 / 0 |