首先使用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