分页不工作亚音速

时间:2009-08-31 23:44:29

标签: sql subsonic pagination

我遇到了分页问题。它不起作用,即列表人员数量对于下面的代码总是为零。

如果我删除分页方法,则会显示正确的结果。我怎么解决这个问题?我正在使用Subsonic 2.2。请帮助 - 谢谢


SubSonic.SqlQuery query = DB.Select().Paged(startIndex, pageSize)
             .From<Staff>()
            .InnerJoin(StaffLocation.Schema.TableName, StaffLocation.Columns.StaffId, Staff.Schema.TableName, Staff.Columns.StaffId)
            .InnerJoin(StaffClientGroup.Schema.TableName, StaffClientGroup.Columns.StaffId, Staff.Schema.TableName, Staff.Columns.StaffId)
            .InnerJoin(StaffOutcome.Schema.TableName, StaffOutcome.Columns.StaffId, Staff.Schema.TableName, Staff.Columns.StaffId);
            query.Where("1").IsEqualTo("1");
            if (regionId > 0) query.And(StaffLocation.Columns.RegionId).IsEqualTo(regionId);
            if (clientGroup > 0) query.And(StaffClientGroup.Columns.ClientGroupId).IsEqualTo(clientGroup);
            if (outcome > 0) query.And(StaffOutcome.Columns.OutcomeId).IsEqualTo(outcome);
            query.Distinct();
            query.OrderBys.Add(Staff.Columns.FirstName);
            List<Staff> staffs = query.ExecuteTypedList<Staff>();
            return staffs;

2 个答案:

答案 0 :(得分:2)

在第二行到最后一行放置一个断点,当它在Visual Studio立即窗口中点击执行query.BuildSqlStatement()并检查生成的SQL。这可能有助于缩小范围。

答案 1 :(得分:1)

好吧,我可以告诉你 工作了:)我觉得......

  1. 你的startIndex错了 - 尝试使用1或2
  2. 您的pageSize未设置
  3. 什么是“Where(”1“)。IsEqualTo(”1“)?
  4. 您可能会尝试抓取SQL以查看正在生成的内容......