我在Hql中的计数出错了

时间:2010-05-27 16:49:47

标签: c# asp.net-mvc nhibernate

所以我只希望结果的计数不是结果本身,因此我在hql中使用count。所以,下面是查询

(int)  Session.CreateQuery("select count(*) from TableName where Lhs=Rhs").UniqueResult();

但它给了我错误Specified cast is not valid.

所以,任何人都可以告诉我如何将计数转换为int。

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:2)

尝试

Convert.ToInt32(Session.CreateQuery ....);

同时验证它是否真正返回计数或null。这可能是一种可能性。

谢谢

答案 1 :(得分:1)

改为:

var temp = Session.CreateQuery("select count(*) from TableName where Lhs=Rhs").UniqueResult();

//check the type of the temp
temp.GetType();

我觉得它很长,而不是int。

答案 2 :(得分:0)

问题在于Casting,因为它返回单个结果(与查询匹配的实例)或null。 如果将int更改为可以为空,会发生什么?