概述
Lambda表达式分页
//lambda表达式分页
private void button5_Click(object sender, EventArgs e)
{
// OrderContainer db = new OrderContainer();
// ## EF实例问题(单例模式)
//HttpContext 线程唯一
OrderContainer db = null;
if (HttpContext.Current.Items["db"] == null)
{
db = new OrderContainer();
HttpContext.Current.Items["db"] = db;
}
else
{
db = HttpContext.Current.Items["db"] as OrderContainer;
}
//var coustomerList = db.CoustomerSet.Where<Coustomer>(u => u.Id == 1);
//升序排序
//var coustomerList = db.CoustomerSet.Where<Coustomer>(u => true).OrderBy(u => u.Id);
//降序排序
//var coustomerList = db.CoustomerSet.Where<Coustomer>(u => true).OrderByDescending(u => u.Id);
int pageIndex = 2;
int pageSize = 2;
分页
//var coustomerList = (from u in db.CoustomerSet
// where u.Id > 0
// orderby u.Id descending
// select u).Skip<Coustomer>((pageSize - 1) * 2).Take<Coustomer>(pageSize);
var coustomerList = db.CoustomerSet.Where<Coustomer>(u => true).OrderBy(u => u.Id).Skip((pageIndex - 1) * 2).Take(pageSize);
foreach(var u in coustomerList)
{
Console.WriteLine(u.Id + "t" + u.CoustomName);
}
}
IQueryable接口和IEnumberable的区别
IQueryable接口是有延时加载的
IEnumberable接口是没有延时加载的 IQueryable 的Tolist() 方法将IQueryable接口转成IEnumberable接口
IEnumberable泛型类在调用自己的Skip和Take等扩展方法之前数据就已经加载在本地内存里了,而IQueryable是将Skip,take这些方法表达式翻译成T-SQL语句之后再向SQL服务器发送命令。也是延迟在我要真正显示数据的时候才执行
最后
以上就是灵巧帆布鞋为你收集整理的Lambda表达式分页及EF实例问题的全部内容,希望文章能够帮你解决Lambda表达式分页及EF实例问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复