使用ef对sqlserver进行分页以及注意事项

 var orderPlanDetail = d_APS_OrderDetail.Queryable().Join(query, o => o.PID, p => p.PID, (o, p) => new { o.OID, p.PID, p.SysCode, p.OrderCode, p.styleCode, p.styleName, p.CustomerName, p.Country, p.Port, p.DeliveryDate, o.styleClassify, o.size, o.color, o.totalCount, o.count, o.planStatus }).Where(o => o.planStatus == args.IsPlan);


 orderPlanDetail = orderPlanDetail.OrderBy(s => s.OID).Skip((args.Page - 1) * args.PageSize).Take(args.PageSize);

(1)上面的例子是通过ef来实现的分页,其中PageSize表示一页显示的数据量,Page表示显示的是第几页。一定要注意在分页的时候的OrderBy排序最好以主键或者所查到数据中这个字段不会出现很多一样的值,否则会导致分页的数据不正确.

(2)Skip:跳过序列中指定数量的元素,然后返回剩余的元素。

Take: 只要满足指定的条件,就会返回序列的元素。

你可能感兴趣的:(c#)