0

这是否可以使用 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 从内部查询中进行选择,而不是在实体上进行选择。有谁知道这是否可能?

4

1 回答 1

1

NHibernate - 作为典型的 ORM 工具 -在对象模型之上提供查询/域操作语言(HQL、QueryOver、Criteria...) 。FROM 子句始终由Object映射定义。

您拥有的选项

  • 引入映射到视图的新只读对象(或子选择而不是表)
  • 用于session.CreateSQLQuery()获得对底层结构化查询语言 (SQL) 的完全访问权限
于 2013-07-05T05:09:39.020 回答