带有子查询的休眠选择查询?

Posted

技术标签:

【中文标题】带有子查询的休眠选择查询?【英文标题】:Nhibernate select query with subquery? 【发布时间】:2012-07-03 01:13:03 【问题描述】:

我是 C# 的 Nhibernate 新手。

这是我的 SQL 查询:

select * from advis_productattributes where ID in 
(select attributeid from advis_productattributes_products where productid=1);

我知道 HQL 中的简单选择查询:

string hql = @"select p from ProductAttributes_Products p.ProductId :id"; 
var query = new SimpleQuery<ProductAttributes_Products>(hql); 
query.SetParameter("id", ProductId); 
return query.Execute();

我在网上搜索过,但仍然失败。如何使用子查询编写 HQL?

这是类的设计。

【问题讨论】:

能否展示相关的模型类? @ClaudioRedi 我已经用图表更新了问题。谢谢 【参考方案1】:

我相信您可以通过使用 NHibernate LINQ 来实现这一点。请参考这些堆栈溢出Answer #1 和Answer #2

【讨论】:

谢谢@Aravinth Kannan,很抱歉我是 NHibarnate 的第一天。 Nhibarnate Linq Linq 是 Nhibarnate 的吗?我需要一些其他类/控件来使用它吗?谢谢 嗨,您不需要任何额外的控件来使用 Linq for NHibernate。这一切都与您的 NHibernate 库捆绑在一起。你可以参考这个Tutorial 开始..【参考方案2】:

我不知道您在网上的确切位置搜索...但是官方文档包含您需要了解的关于 HQL 中的 subqueries 的所有信息

和 SQL 差不多。

【讨论】:

以上是关于带有子查询的休眠选择查询?的主要内容,如果未能解决你的问题,请参考以下文章

休眠条件中的子选择

带有子查询的 Oracle 选择

如何将带有子选择的 SQL 查询转换为 MDX 查询?

Hibernate:在子选择查询中使用 IN 子句时出现错误

如何在休眠子查询中同时使用行号和顺序?

带有子查询排除的 SQL 选择字段