powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Nhibernate - реализация поиска
6 сообщений из 6, страница 1 из 1
Nhibernate - реализация поиска
    #37710506
oblomov86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица с большим количеством связей (1*n, n*m) и записей.
Нужно организовать поиск записей в этой таблице, используя все текстовые поля этой таблицы и связанных. Результат выводить пэйджингом. В хранимой процедуре я создавал временную таблицу, состоящую из конкатенации всех текстовых полей этой таблицы и связанных таблиц и идентификатора записи, затем использовал LIKE. Как подобный механизм можно реализовать в Nhibernate?
В особенности интересует: придется ли сначала все записи тянуть с sql-сервера на web-сервер, а только затем в коде делать поиск? Если так, то весьма прискорбно.
И интересует вопрос, как NHibernate работает внутри: транслирует код в sql-запросы как linq2sql?
...
Рейтинг: 0 / 0
Nhibernate - реализация поиска
    #37711016
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oblomov86В хранимой процедуре я создавал временную таблицу, состоящую из конкатенации всех текстовых полей этой таблицы и связанных таблиц и идентификатора записи, затем использовал LIKE.
Сколько же длилось формировние таблицы и поиск по ней?

oblomov86Как подобный механизм можно реализовать в Nhibernate?
Боюсь, это не тот механизм, который следует использовать в NHibernate. Для этих целей лучше использовать полнотекстовый поиск.
Вкратце, для NHibernate есть проект - NHibernate.Search, который использует Lucene.Net для организации полнотекстового поиска.
Теорию можно прочитать здесь . Краткое практическое введение здесь .

PS. На крайняк NHibernate может маппить результаты выполнения хранимых процедур и обычных SQL-запросов.
...
Рейтинг: 0 / 0
Nhibernate - реализация поиска
    #37714066
oblomov86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо.
Возможно ли в NHibernate отключать "ленивую загрузку" во время выполнения?
...
Рейтинг: 0 / 0
Nhibernate - реализация поиска
    #37715907
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oblomov86,

Вот прям отключать во время выполнения нельзя. Но при написании запросов можно указывать, чтобы хибер грузил связанные сущности и коллекции одним запросом.
В hql - это слово fetch. Например:
Код: c#
1.
2.
3.
from Order o 
fetch join o.OrderLine ol 
fetch join ol.Product p 


Для LINQ и QueryOver ищите методы расширения, в которые оно входит.
...
Рейтинг: 0 / 0
Nhibernate - реализация поиска
    #37717422
NHibernate_User_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот, а как это сделать через маппинг, не через Query?

То есть что надо написать в маппинге, чтобы данное поле всегда грузилось?
...
Рейтинг: 0 / 0
Nhibernate - реализация поиска
    #37717456
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NHibernate_User_,

lazy="false" вестимо.
Если хотите проблем с производительностью - самое оно.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Nhibernate - реализация поиска
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]