nHibernate 3.0查询
问题描述:
通过暑期的nHibernate教程已经涉及到查询部分。似乎自从该系列作品发布以来已经发生了变化。于是我去了在线文档的NHB 3.0,但这样的代码:nHibernate 3.0查询
IList cats = session.CreateCriteria(typeof(Cat))
.Add(Expression.Like("Name", "Fritz%"))
.Add(Expression.Between("Weight", minWeight, maxWeight))
.List();
生成错误
典“这个名字‘表达’在目前情况下不存在”,如:
return session.CreateCriteria(typeof(DataTransfer.Customer))
.Add(new NHibernate.Criterion.LikeExpression("Firstname", firstname))
.Add(new NHibernate.Criterion.LikeExpression("Lastname", lastname))
.List<Customer>();
工程,但它似乎缺少一些查询方法,如GtExpression。 在线文档是否是最新的,如果是这样,为什么我不能使用表达式... 如果在线文档不是最新的,那么我在哪里可以获得Criterion界面的描述? 谢谢
答
你忘了添加using NHibernate.Criterion;
。
无论如何,Expression
类已被弃用。改为使用Restrictions
。
答
奇怪的事情。我仍然使用Expression。*静态方法,这些仍然有效。你确定你使用最新版本的NH3.0吗?我使用Alpha 2版本。
如果您需要迫切的工作,让我们尝试QueryOver <>功能:
return session.QueryOver<DataTransfer.Customer>()
.WhereRestrictionOn(u => u.Name).IsLike("Fritz%")
.AndRestrictionOn(u => u.Weight).IsBetween(minWeight).And(maxWeight)
.List();
它非常适合于简单的查询
是的,谢谢,我错过了使用声明,并强调“限制”是为什么文档让我感到困惑。 – 2010-12-06 03:01:10