5
有没有办法将ICriteria结果用作后续条件查询的“基础”?对其他查询的结果执行nHibernate icriteria(两个不同的查询)
例如,如果我想创建一个查询
SELECT department_id, sum(cost) AS total
FROM payment
GROUP BY payment.department_id
存储结果为query0
,然后执行查询
SELECT department.name, total
FROM department, query0
JOIN LEFT ON department.id=query0.id
WHERE total > 3
我不希望有一个单一的巨大的查询执行一次(这将是创建带有子查询的ICriteria的结果)。请注意,我对第一个查询的结果有一个选择/限制,同时在第二个查询的投影中包含其中一列。
使用字符串来动态生成标准来标识类。
我不是用的ICriteria familir,但不可能第一个查询作为基础或rootquery,然后在它周围包围一个新的选择? –
也许你应该只用总数> 3来过滤query0的department_ids,然后在第二个查询中用IN子句获取这些部分。来自Ayende的关于这个问题的好消息,当IN列表非常大时:http://ayende.com/blog/2583/nhibernates-xml-in以及一个到XmlIn.cs的非断开链接:http://代码。 google.com/p/hornget/source/browse/trunk/package_tree/frameworks/rhino.tools/rhino/patch/commons/Rhino.Commons.NHibernate/NHibernate/XmlIn.cs?spec=svn78&r=78 – jbl
@Kay Nelson This恰恰是分离条件与合并但单个查询的方法。 @jbl我仍然需要投影中的总数。而这个解决方案只会在这种特殊情况下工作(例如,如果连接不在'department.id = query0.id AND department.XYZ == query0.XYZ') – Dani