使用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从内部查询中选择,而不是在实体上选择。有谁知道这是否可行?
答案 0 :(得分:1)
NHibernate - 作为典型的ORM工具 - 在对象模型之上提供查询/域操作语言(HQL,QueryOver,Criteria ...)。 FROM子句始终由Object
映射定义。
您拥有的选项
session.CreateSQLQuery()
获取对底层结构化查询语言(SQL)的完全访问权限