【发布时间】:2015-01-26 14:37:39
【问题描述】:
我正在使用 QueryOver 使用连词执行一系列子查询。这是一些解释我在做什么的伪代码:
Conjunction conj = new Conjunction();
conj.Add(Subqueries.WhereProperty<Customer>(...).In(QueryOver.Of<Foo>().Where(...));
conj.Add(Subqueries.WhereProperty<Customer>(...).In(QueryOver.Of<Bar>().Where(...));
var result = session.QueryOver<Customer>()
.Where(conj)
.List();
这很好用,但我遇到了一种情况,我需要将 HQL (CreateQuery()) 用于我的一个子查询。我需要使用 HQL 的原因是由于未映射的关系,我需要一个 theta(又名交叉)连接(不幸的是我无法更改它)。
有没有一种方法可以使用 CreateQuery()(或 CreateCriteria(),假设我可以进行 theta 连接)来定义子查询并使用 QueryOver() 指定顶级查询?
【问题讨论】:
标签: nhibernate hql nhibernate-criteria queryover