分页查询排序,使用了子查询后,排序结果变乱 返回

SqlSugar 沟通中
1 188

使用了子查询后排序变乱了,这是什么原因

Db.Queryable<OrderModel, StudentModel, SchoolModel, ThirdPayModel>((a, b, c, d) => new JoinQueryInfos(

                  JoinType.Left, a.StudentsID == b.ID,

                  JoinType.Left, b.SchoolID == c.ID,

                  JoinType.Left, a.ThirdPayID == d.ID

                  ))

                .With(SqlWith.NoLock)

                .Where(a => a.RefundOrderID == 0)

                .WhereIF(user.IsManage, a => user.PlaceIDs.Contains(a.PlaceID))

                .WhereIF(!par.TFilter.IsNullOrEmpty(), par.TFilter)

                .OrderByIF(!par.TOrderInfo.IsNullOrEmpty(), par.TOrderInfo)

                .OrderBy(a => a.ID, OrderByType.Desc)

                .Select((a, b, c) => new OrderView()

                {

                    ID = a.ID.SelectAll(),

                    SchoolName = SqlFunc.IsNull(c.SchoolName, "大众款"),

                    IsHandleRefund = SqlFunc.Subqueryable<OrderModel>()

                    .Where(h => h.RefundOrderID == a.ID && h.RefundOrderID > 0 && SqlFunc.Between(SqlFunc.ToInt32(h.Type), 111, 150))

                    .Any()

                })

                .WhereIF(!par.Filter.IsNullOrEmpty(), par.Filter)

                .ToPageList(par.PageIndex, par.PageSize, ref par.TotalNumber, ref par.TotalPage);

如果不使用以下的子查询,排序是正常的,

IsHandleRefund = SqlFunc.Subqueryable<OrderModel>()

                    .Where(h => h.RefundOrderID == a.ID && h.RefundOrderID > 0 && SqlFunc.Between(SqlFunc.ToInt32(h.Type), 111, 150))

                    .Any()


热忱回答1