我试图返回给定属性不为空的所有实体。 问题是IsNotEmpty()
只适用于集合。以下是我迄今为止采取的一般方法,显然不起作用。Nhibernate ICriteria - 检查属性值长度
ICriteria lvCriteria = NHibernateHelper.GetCurrentSession()
.CreateCriteria(typeof(FunctionCall))
.SetMaxResults(100)
.AddOrder(Order.Desc("LogId"));
if (pvMsg.HasValue)
{
lvCriteria.Add(Restrictions.IsNotNull("Msg"))
.Add(Restrictions.IsNotEmpty("Msg"));
}
有什么建议吗?是否可以通过检查属性值的长度来实现这个结果?谢谢!
我要么不理解你的代码,要么不明白什么是不工作的。你能提供一些样本输入数据和一些样本(预期与实际)输出吗? – 2010-01-23 11:23:04
消息只是一个文本字段,可以是空的,空的或包含一些值。我只想返回那些Msg属性包含一些值的实体“FunctionCall”。 IsNotEmpty()仅适用于集合,而不适用于单个实体。 (即,如果列表包含项目,则返回true,但如果在单个属性上使用则抛出异常)。 给定3个FunctionCall实体的属性Msg有3个单独的值“”,null和“ERROR”,我希望只有一个实体从我的查询返回,其中包含“ERROR”。 – alan 2010-01-25 14:19:33