static IQueryable<T> GetPageList<T,TKey>(Expression<Func<T,bool>> whereLambda,Expression<Func<T,TKey>> orderLambda,int pageSize,int pageIndex)
where T:class
{
DbContext context=new T1Context();
var result = context.Set<T>()
.Where(whereLambda)
.OrderByDescending(orderLambda) //将数据降序排列
.Skip((pageIndex - ) * pageSize)
.Take(pageSize)
.Select(c=>c);
return result;
}
上面值的返回类型是IQueryable,为什么是这个类型呢?
我们可以随便将一个方法,F12转到定义,比如.Take吧
可以看到每个方法的返回类型都是IQueryable,那么你就懂了吧,哈哈~
--------
调用代码块:
var result = GetPageList<CustomerInfo,int>(
c=>c.CustomerName.Length<,
c=>c.CustomerId,
pageSize, pageIndex);
foreach (var obj in result)
{
Console.WriteLine(obj.CustomerName);
}
-------------------------------
以上代码是一个分页查询的简单写法,其中T,TKey代表的是泛型。及代表同一种类型,这里的T代表是同一个类(CustomerInfo类),TKey代表都是int类型。
TKey是T的一个属性,根据这个属性进行排序