LINQ To NHibernate игнорирует предложение «Группировать по» - PullRequest
0 голосов
/ 05 августа 2011

Я использую NHibernate 3.2.0 и не могу заставить поставщика LINQ сгенерировать правильный SQL-запрос для этого оператора:

var result = (from translation in session.Query<TmTranslation>()
              where translation.Id > 0
              group translation by translation.Language into grp
              select new { Lang = grp.Key.Code }).ToList();

Сгенерированный SQL

select tmtranslat0_.id                        as id32_,
       tmtranslat0_.status                    as status32_,
       tmtranslat0_.text                      as text32_,
       tmtranslat0_.last_revision             as last4_32_,
       tmtranslat0_.fk_id_translation_unit    as fk5_32_,
       tmtranslat0_.fk_id_translator          as fk6_32_,
       tmtranslat0_.fk_id_last_modifier       as fk7_32_,
       tmtranslat0_.fk_id_last_match_category as fk8_32_,
       tmtranslat0_.fk_id_language            as fk9_32_
from   "TRANSLATION" tmtranslat0_
where  tmtranslat0_.id > 0

, что, конечно, приводит к загрузке всех сущностей из базы данных и группированию результирующего набора в памяти (сам результат правильный).

Я бы хотел что-то вроде этого

select tmtranslat0_.fk_id_language
from   "TRANSLATION" tmtranslat0_
where  tmtranslat0_.id > 0
group by tmtranslat0_.fk_id_language

будет создан вместо.

Я что-то упустил?

Большое спасибо.

1 Ответ

0 голосов
/ 05 августа 2011

Единственное, что я могу предложить, это использовать QueryOver API.

...