无法将类型为“NHibernate.Hql.Ast.HqlBitwiseAnd”的对象强制转换为类型“NHibernate.Hql.Ast.HqlBooleanExpression”

首先使用Expression使用动态表达式生成查询条件,

Expression body = Expression.Constant(true);

body = Expression.And(body, expression);

然后执行查询

session.QueryOver<Customer>().Where(prediate).List();

报错如下:

无法将类型为“NHibernate.Hql.Ast.HqlBitwiseAnd”的对象强制转换为类型“NHibernate.Hql.Ast.HqlBooleanExpression”

解决方法:

使用Expression.AndAlso代替Expression.And


转载于:http://www.cnblogs.com/hyl8218/archive/2013/03/12/2955074.html

你可能感兴趣的:(无法将类型为“NHibernate.Hql.Ast.HqlBitwiseAnd”的对象强制转换为类型“NHibernate.Hql.Ast.HqlBooleanExpression”)