Nhibernate 使用CreateQuery/CreateCriteria/QueryOver从T中选择前10名<;T>;在存储库级别而不是实体级别
我一直面临着获取用户最近10篇帖子的问题。 我编写了以下Nhibernate查询,如下所示Nhibernate 使用CreateQuery/CreateCriteria/QueryOver从T中选择前10名<;T>;在存储库级别而不是实体级别,nhibernate,c#-4.0,hql,nhibernate-criteria,queryover,Nhibernate,C# 4.0,Hql,Nhibernate Criteria,Queryover,我一直面临着获取用户最近10篇帖子的问题。 我编写了以下Nhibernate查询,如下所示 public IList<T> GetLatest10Posts() { using (var session = sessionFactory.OpenSession()) using (var transaction = session.BeginTransaction()) { var querySt
public IList<T> GetLatest10Posts()
{
using (var session = sessionFactory.OpenSession())
using (var transaction = session.BeginTransaction())
{
var queryString = String.Format("SELECT TOP 10 FROM {0} ORDER BY DateUpdated DESC", typeof(T));
var returnVal = session.CreateQuery(queryString).List<T>();
transaction.Commit();
return returnVal;
}
}
public IList GetLatest10Posts()
{
使用(var session=sessionFactory.OpenSession())
使用(var transaction=session.BeginTransaction())
{
var queryString=String.Format(“按DateUpdated DESC从{0}顺序中选择前10名”,typeof(T));
var returnVal=session.CreateQuery(queryString.List();
Commit();
返回值;
}
}
抛出异常
引发了类型为“Antlr.Runtime.NoViableAltException”的异常。第11列第1行附近
注意:DateUpdated是列名,属于DateTime类型,它存在于所有继承实体中
在我尝试实现以下目标时,QueryOver api是否有什么好运气:
session.QueryOver<T>().Take(10).OrderBy().Desc
session.QueryOver().Take(10.OrderBy().Desc
去年我写了一篇关于HQL语法的文章
简而言之,从{0}order by DateUpdated desc取10