nHibernate 3.0查询

时间:2010-12-05 10:37:21

标签: nhibernate

在整个夏天的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界面的描述? 感谢

2 个答案:

答案 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();

适用于简单查询