Възможно ли е това с помощта на QueryOver или CreateCriteria:
SELECT FooName, SUM(FooAmount)
FROM (
SELECT
(SELECT Name FROM Foo
WHERE Foo.BarId = Bar.Id) as FooName,
FooAmount
FROM Bar
) as inner_query
GROUP BY FooName
Моля, обърнете внимание, че тази заявка е конструираназа демонстрационни цели. Не се интересувам от добавяне на взаимоотношения между субекти, пренаписване на самото запитване и т.н. Освен това приложението е настроено да се възползва от изграждането на заявки с помощта на CreateCriteria - не е възможно да го промените на HQL.
Възможно е да се конструира вътрешната заявкаNHibernate като обособени критерии. Проблемът е да накарате NHibernate да избира от вътрешната заявка, а не над единица. Някой знае ли дали това е възможно?
Отговори:
1 за отговор № 1NHibernate - като типичен инструмент за ORM - предоставя език / езици за манипулиране на заявки / домейни (HQL, QueryOver, критерии ...) отгоре на обектния модел. Клаузата FROM винаги се определя от Object
картографиране.
Опциите, които имате
- въведете ново Само за четене обект, картографиран за преглед (или подизбор вместо таблица)
- употреба
session.CreateSQLQuery()
за да получите пълен достъп до основен структуриран език на заявките (SQL)