linq+Lambda查询

实例数据:

1、条件查询:Lambda表达式

Repeater1.DateSource=con.Car.Where(r=>r.Name==name);

2、多条件查询:

Repeater1.DateSource=con.Car.Where(r=>r.Name==name&&r.Price==Convert.ToDecimal(price)).ToList();

3、模糊查询(包含字符串)

Repeater1.DataSource=con.Car.Where(r=>r.Name.Contains(name)).ToList();

4、开头、结尾

Repeater1.DataSource=con.Car.Where(r=>r.Name.StartsWith(name)).ToList();

Repeater1.DataSource=con.Car.Where(r=>r.Name.EndWith(name)).ToList();

5、最大值、最小值

//模糊查询并绑定数据

IQueryable<Car> clist=con.Car.Where(r=>r.Name.Contains(name)).AsQueryable();

Repeater1.DataSource=clist;

//展现数据中最大的

Lable1.Text=clist.Max(r=>r.Price).ToString();

//展现数据中最小的

Lable1.Text=clist.Min(r=>r.Price).ToString();

6、记录条数

//模糊查询并绑定数据

IQueryable<Car> clist=con.Car.Where(r=>r.Name.Contains(name)).AsQueryable();

Repeater1.DataSource=clist;

//展现数据记录条数

Lable1.Text=clist.Count().ToString()

7、平均值、和

//平均值:

Lable1.Text=con.Car.Average(r=>r.Price).ToString();

//和

Lable1.Text=con.Car.Sum(r=>r.Price).ToString();

8、升序、降序

//升序

Repeater1.DataSource=con.Car.OrderBy(r=>r.Price);

//降序

Repeater1.DataSource=con.Car.OrderByDescending(r=>r.Price);

//分段排序:

IQueryable<Car> clist=con.Car.AsQueryable()OrderBy(r=>r.Brand).ThenBy(r=>r.Oil);

9、单表查询

var query=from tc in db.tbClass
                  where tc.ClassID=="1"
                 //查询表tbClass
                 select new{
                        ClassID=tc.ClassID,
                        ClassName=tc.ClassName
                    }

10、多表内连接查询

var query=from s in db.tbStudents
                            join c in db.tbClass on s.ClassID equals c.ClassID
                            where s.ClassID==3
                            select new
                             {
                                    ClassID=s.ClassID,
                                    StudentID=s.StudentID
                                }

11、组合查询 

IQueryable<Users> ulist=con.Users;
if(name.Length)>0
{
   ulist=ulist.Where(r=>r.UserName.Contains(name));
}
if(nick.Length)>0
{
   ulist=ulist.Where(r=>r.NickName.Contains(nick));
}
if(year.Length)>0
{
   ulist=ulist.Where(r=>Convert.ToDateTime(r.Birthday).Year.ToString()==year);
}
Repeater1.DataSource=ulist.Take(count);
Repeater1.DataBind();

12、分页:

 集合的Skip方法:跳过多少条数据

        Take方法:取前多少条数据

13、上一页、下一页

int PageCount=5;  //每页显示条数
//上一页
int pageNum=Convert.ToInt32(PageCount_Lable1.Text)-1;
Repter1.DataSource=con.car.Skip((pageNum-1)*PageCount).Take(PageCount);
Repter1.DataBind();
PageCOunt_Lable1.Text=pageNum.ToString();

//下一页
int pageNum=Convert.ToInt32(PageCount_Lable1.Text)+1;
Repter1.DataSource=con.car.Skip((pageNum-1)*PageCount).Take(PageCount);
Repter1.DataBind();
PageCOunt_Lable1.Text=pageNum.ToString();

14、集合的交集

        集合的Intersect方法,取两个集合的交集;    Union方法 并集       Except方法差集

       var  allList=nameList.Intersect(brandList);

15、

项目中遇到一个问题, 有4张表, 然后相互之间有3张关系表关联, 一共七张表。

想要从顶层表查询最底层表的记录,不能写7层嵌套。 用Linq实现特别简单, 表:User,Role,Module,Function以及

User_Role,Role_Module, Module_Function, var fs = (from r in DB.user_role
                          from m in DB.role_module
                          from f in DB.module_function
                          where r.User_Refid.Equals(user.Refid) && m.Role_Refid.Equals(r.Role_Refid) && f.Module_Refid.Equals(m.Module_Refid)
                          select f.function.Name)
                         .Distinct();
 
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值