NHibernate,当条件有一个分组时获取rowcount

Eri*_*röm 7 nhibernate criteria

我需要从条件查询中获取行数,并且标准按预测分组.(需要分页工作)

例如

projectionList.Add(Projections.GroupProperty("Col1"), "col1")
              .Add(Projections.CountDistinct("Col2"), "Count");
Run Code Online (Sandbox Code Playgroud)

我需要避免使用CreateSQL,因为我有很多标准..而且限制等很复杂.

你能做一个子标准(分离)select count(*) from ..吗?想不通怎么样?

编辑:我通过从标准中获取sql然后修改它来解决它,以便它现在可以工作!来自条件的GetSql

And*_*day 0

我认为这可以通过使用 NH 多查询来完成。

以下是有关它的一些内容:http://ayende.com/blog/3979/nhibernate-futures示例显示了我们如何运行查询并在一次往返数据库中获取该查询的结果计数。

这里有一个很好的答案,听起来与您想要实现的目标类似:nhibernate 2.0 Efficient Data Paging DataList Control 和 ObjectDataSource,它们在数据库的一次往返中获取结果页和总记录数。

另外,我怀疑是否可以@@rowcount在不更改 sql 查询的情况下使用 NH 读取纯值,就像@@rowcount数据库特定的事情一样。

我的假设是,对于您的情况,不可能从标准解决方案中避免 GetSql,除非您简化查询或方法。也许也值得尝试一下。

如果您可以发布更大的代码块,可能有人能够解决这个问题。