实例数据:
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();