【问题标题】:SELECT TOP 10 FROM T using CreateQuery/CreateCriteria/QueryOver<T> at Repository Level not at Entity Level在存储库级别而不是实体级别使用 CreateQuery/CreateCriteria/QueryOver<T> 从 T 中选择前 10
【发布时间】:2012-06-24 19:30:29
【问题描述】:

我在获取用户最近发布的 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;
        }
    }

抛出异常

引发了“Antlr.Runtime.NoViableAltException”类型的异常。靠近第 1 行第 11 列

注意:DateUpdated 为列名,为 DateTime 类型,存在于所有继承实体中。

QueryOver api 是否有任何运气,因为我正在尝试实现这样的目标:

session.QueryOver<T>().Take(10).OrderBy().Desc 

【问题讨论】:

    标签: nhibernate c#-4.0 hql nhibernate-criteria queryover


    【解决方案1】:

    去年我写了一封post 来介绍 HQL 语法。

    简而言之,from {0} order by DateUpdated desc take 10

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-13
      • 2014-12-01
      • 1970-01-01
      • 2019-05-28
      • 2015-10-13
      相关资源
      最近更新 更多