/ / Wybieranie z podzapytania zamiast encji z NHibernate - nhibernate

Wybór z podzapytania zamiast encji z NHibernate - nhibernate

Czy jest to możliwe przy użyciu QueryOver lub 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

Pamiętaj, że to zapytanie zostało zbudowanedo celów demonstracyjnych. Nie jestem zainteresowany dodawaniem relacji między jednostkami, przepisywaniem samego zapytania itp. Ponadto aplikacja jest skonfigurowana do korzystania z konstrukcji zapytania za pomocą CreateCriteria - nie można go zmienić na HQL.

Możliwe jest zbudowanie wewnętrznego zapytania wNHibernate jako oderwane kryterium. Problem polega na tym, aby NHibernate wybierał z wewnętrznego zapytania zamiast z jednostki. Czy ktoś wie, czy to jest możliwe?

Odpowiedzi:

1 dla odpowiedzi № 1

NHibernate - jako typowe narzędzie ORM - zapewnia obsługę języków zapytań / domen (HQL, QueryOver, kryteria ...) na górze modelu obiektowego. Klauzula FROM jest zawsze definiowana przez Object mapowanie.

Opcje, które masz

  • wprowadzić nowy tylko czytać obiekt odwzorowany na widok (lub podselekcja zamiast tabeli)
  • posługiwać się session.CreateSQLQuery() aby uzyskać pełny dostęp do bazowego języka strukturalnego zapytania (SQL)