在整个夏天的nHibernate教程中已经有了关于查询的部分。似乎自该系列制作以来一直有变化。所以我去了nHB 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这样的查询方法。 在线文档是否是最新的,如果是,为什么我不能使用Expression ... 如果在线文档不是最新的,那么我在哪里可以获得Criterion界面的描述? 感谢
答案 0 :(得分:3)
您忘记添加using NHibernate.Criterion;
。
无论如何,Expression
类已被弃用。请改用Restrictions
。
答案 1 :(得分:0)
奇怪的是。我仍然使用Expression。*静态方法,这些仍然有效。您确定使用的是最新版本的NH3.0吗?我使用Alpha 2版本。
如果你需要让它紧急工作,让我们试试QueryOver&lt;&gt;特征:
return session.QueryOver<DataTransfer.Customer>()
.WhereRestrictionOn(u => u.Name).IsLike("Fritz%")
.AndRestrictionOn(u => u.Weight).IsBetween(minWeight).And(maxWeight)
.List();
适用于简单查询