【问题标题】:Projections.RowCountInt64() returns 0 when i set SetFirstResultProjections.RowCountInt64() 在我设置 SetFirstResult 时返回 0
【发布时间】:2009-01-12 02:48:51
【问题描述】:

rowCount在query.SetFirstResult不为0时返回0?

如果 pageIndex x pageSize = 0 的结果 // 它给了我 rowCount 但当它不等于 0 时,countCriteria 给我 0 而不是 rowCount。

我能做什么?

提前致谢

【问题讨论】:

    标签: nhibernate projection rowcount


    【解决方案1】:

    首先是使用sqlprofiler 并检查正在执行的sql。也许这有什么问题。我看不出标准有什么问题。

    【讨论】:

    • 我检查了 sqlprofiler 上的 sql,但我无法弄清楚。我已经发布了正在执行的 sql。谢谢
    【解决方案2】:

    我已经解决了我的问题。问题是,Nhibernate 有一个关于 CriteriaTransformer.TransformToRowCount 的错误工作人员。它返回 int 不长。

    我上面做错的是,我试图获取有限结果集的行数(设置了 SetFirstResult 和 SetMaxResult 的查询)

    ISession session = NHibernateHttpModule.CurrentSession;
    
                var countCriteria = CriteriaTransformer.TransformToRowCount(query);
                rowCount = Convert.ToInt64(countCriteria.GetExecutableCriteria(session).UniqueResult());
    
                query.SetMaxResults(pageSize).SetFirstResult(pageIndex * pageSize);
                var customers = query.GetExecutableCriteria(session).List<Customer>();
    

    这是我的场景的解决方案。我希望它可以帮助遇到同样问题的人。

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-04
      • 1970-01-01
      • 2019-06-08
      • 1970-01-01
      • 2018-07-30
      • 1970-01-01
      相关资源
      最近更新 更多