分页查询排序,使用了子查询后,排序结果变乱 返回
使用了子查询后排序变乱了,这是什么原因
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)
-
fate sta VIP0
1个月前tooffsetpage用这个
0 回复