【问题标题】:Pagination not working Subsonic分页不起作用亚音速
【发布时间】:2010-03-06 21:45:15
【问题描述】:

我的分页有问题。它不起作用,即下面的代码列表人员计数始终为零。

如果我删除 Paged 方法,则会出现正确的结果。我还能如何解决这个问题?我正在使用亚音速 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;

【问题讨论】:

    标签: sql subsonic pagination


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      好吧,我可以告诉你它确实有效:)而且我有一种感觉......

      1. 您的 startIndex 错误 - 尝试使用 1 或 2
      2. 您的 pageSize 未设置
      3. 什么是“Where("1").IsEqualTo("1")?

      您可以尝试获取 SQL 以查看正在生成的内容...

      【讨论】:

      • 我认为 "Where("1").IsEqualTo("1") 存在是因为 .Where() 必须在 .And() 之前调用,除了 .And() 的是有条件的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-09
      相关资源
      最近更新 更多