【问题标题】:Selecting from a subquery instead of an entity with NHibernate使用 NHibernate 从子查询而不是实体中进行选择
【发布时间】:2013-07-05 03:03:12
【问题描述】:

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

【问题讨论】:

    标签: nhibernate


    【解决方案1】:

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

    你的选择

    • 引入新的只读对象映射到视图(或子选择而不是表)
    • 使用 session.CreateSQLQuery() 获得对底层结构化查询语言 (SQL) 的完全访问权限

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-12
      • 2014-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多