Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> NHibernate Проблема N+1 запросов, Вместо InnerJoin много запросов 
:(
    Опции темы
Karrde
Дата 6.3.2012, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 11.11.2006

Репутация: нет
Всего: нет



Не могу разобраться с проблемой N+1. существует структура 3-его уровня вложенности(т.е в ней объявлена другая структура, в которой, в свою очередь, ещё одна структура). Всё это имеет отображение в таблицах. 
Запрос на select имеет такой вид: 

Код

ICriteria query = session.CreateCriteria(typeof(GroupInfo)).SetFirstResult(offset);
                        if (recordCount > 0)
                            query = query.SetMaxResults(recordCount);
                        returnList = query.List<GroupInfo>();


Маппинг для этой таблицы выглядит так:
Код

Table("db_Groups");
            Id(x => x.Id).GeneratedBy.Identity().Column("GroupID");
            Map(x => x.Group).Column("GroupName");
            Map(x => x.Description).Column("Description");
            HasMany(x => x.AbonentSet).KeyColumn("GroupID").Cascade.All().Not.LazyLoad().AsSet()


В итоге для того, чтобы считать всю информацию, посылается N+1 запросов. Гуглил, кое-где говорится, что надо сам маппинг менять(добавлять Fetch.Join()), кое-где - к сессии добавлять ещё одно условие. Не помогает. либо так и продолжает считывать кучей запросов, либо выдает эксепшн. 
Заранее благодарю за совет
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0503 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.