entityframework + Linq 分页

使用EF方便了我们操作数据库,使用Linq和lamda表达式,方便了我们对数据的操做.以及集合,数组等数据结构的操作.Linq其实是.net3.5之后新加如的语法,其本质还是会被翻译为sql语句来执行的.而lamada表达式其本质就是泛型委托的和扩展方法以及类型推断等多种特性共同作用的结果.

下边来看一些常用的数据集合的操作:

1,登陆操作,纯粹的Linq

 ERPEntities entity = new ERPEntities();
                String userName = String.Empty;
                String password = PublicUtil.Encrypt(model.Password);
                IEnumerable<ERPUser> users = (from u in entity.ERPUser where u.TrueName == model.UserName && u.UserPwd == password select u);
                if (users != null && users.Count() > 0)
                    userName = users.First().TrueName;
                if (String.IsNullOrEmpty(userName))
                {
                    ModelState.AddModelError("UserName", "用户名不存在");
                }


2,下边是一个根据用户较色查找权限的,纯粹的lamda表达式以及lamda表达式和linq的混写.

                        ERPEntities entity = new ERPEntities();
                        var qx = entity.ERPJiaoSe.Where(p => entity.ERPUser.Where(u => u.TrueName == userName).Select(u => u.JiaoSe).FirstOrDefault().Contains(p.JiaoSeName) && 2 == 2).Select(Q => new { Q.QuanXian, Q.ID });
                        IEnumerable<String> quanxian = from c in entity.ERPJiaoSe where (from u in entity.ERPUser where u.TrueName == userName select u.JiaoSe).FirstOrDefault().Contains(c.JiaoSeName) select c.QuanXian;


3,下边是一个分页,

  int pageIndex = 0;
            int pageSize = 10;
            ERPEntities entity = new ERPEntities();
            var list = (from kq in entity.ERPWorkRiZhi orderby kq.TimeStr descending select kq).Skip(pageIndex*pageSize).Take(pageSize);


linq和lamda表达式操作集合数据非常方便,.net里边包含的扩展的泛型方法能操纵很多用户自定义的数据类型.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值