当前位置:  开发笔记 > 编程语言 > 正文

如何选择nHibernate子查询结果的Count(*)

如何解决《如何选择nHibernate子查询结果的Count(*)》经验,为你挑选了2个好方法。

为了在nHibernate中分页查询,我需要执行以下操作:

Select count(*) from 
(Select e.ID,e.Name from Object as e where...)

我试过以下,

select count(*) from Object e where e = (Select distinct e.ID,e.Name from ...)

我得到一个nHibernate Exception,说我无法将Object转换为int32.

有关所需语法的任何想法?

编辑

Subquery使用distinct子句,我无法替换e.ID,e.Name with Count(*)因为Count(*) distinct不是有效的语法,并且distinct count(*)没有意义.



1> 小智..:

NHibernate 3.0允许Linq查询.

试试这个

int count = session.QueryOver().RowCount();



2> Matt Hinze..:
var session = GetSession();
var criteria = session.CreateCriteria(typeof(Order))
                    .Add(Restrictions.Eq("Product", product))
                    .SetProjection(Projections.CountDistinct("Price"));
return (int) criteria.UniqueResult();

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有