Entity Framework4.1實現動態多條件查詢、分頁和排序
EF通用的分頁實現:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
///
<summary>
///
根據條件分頁獲得記錄
///
</summary>
///
<param name="where">條件</param>
///
<param name="orderBy">排序</param> ///
<param name="ascending">是否升序</param>
///
<param name="pageIndex">當前頁碼</param>
///
<param name="pageSize">每頁大小</param>
///
<param name="totalRecord">總記錄數</param>
///
<returns>記錄列表</returns>
public virtual List<T>
GetMany(Expression<Func<T, bool >> where , string orderBy, bool ascending , int pageIndex, int pageSize, out int totalRecord)
{
totalRecord
= 0;
where = where .And(u
=> u.Flag != ( int )Flags.Delete);
var list
= dbset.Where( where );
totalRecord
= list.Count();
if (totalRecord
<= 0) return new List<T>(); list
= list.OrderBy(orderBy, ascending ).Skip((pageIndex
- 1) * pageSize).Take(pageSize);
return list.ToList();
}
|
動態排序擴充套件:
public static IQueryable<T>
OrderBy<T>(
|