Nhibernate 使用CreateQuery/CreateCriteria/QueryOver从T中选择前10名<;T>;在存储库级别而不是实体级别

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

我一直面临着获取用户最近10篇帖子的问题。 我编写了以下Nhibernate查询,如下所示

    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