Unable to cast object of type 'NHibernate.Hql.Ast.HqlCas
本文关键字:NHibernate Hql Ast HqlCas cast to object of type Unable | 更新日期: 2023-09-27 18:16:29
我使用以下c#代码:
public IList<T> GetAllByExpression(Expression<Func<T, bool>> expression, int startIndex, int count, Func<T, DateTime> dateTimeSelector)
{
using (ISession session = NHibernateHelper.GetSession())
{
return session.Query<T>()
.Where(expression)
.OrderBy(dateTimeSelector)
.Skip(startIndex - 1)
.Take(count)
.ToList();
}
}
更新:甚至下面的代码也会抛出同样的异常:
public IList<T> GetAllByExpression(Expression<Func<T, bool>> expression, int startIndex, int count, Expression<Func<T, DateTime>> dateTimeSelector)
{
using (ISession session = NHibernateHelper.GetSession())
{
return session.Query<T>()
.Where(expression)
//.OrderBy(dateTimeSelector)
//.Skip(startIndex - 1)
//.Take(count)
.ToList();
}
}
得到Nh error:
无法强制转换类型为"NHibernate.Hql.Ast"的对象。HqlCast' to type"NHibernate.Hql.Ast.HqlBooleanExpression"。
我做错了什么?
问题是我在表达式中写了短条件:as ((a == null)?true: a> b) NH强制转换失败(?)
很可能您在日期时间dateTimeSelector
谓词上错过了Expression<>
。