先来看一下我们的表结构:
首先毫无疑问的要创建我们的上下文对象:
using (var db = new Entities()) { //执行操作 }
Average 平均值:
//查询平均分 Console.WriteLine("平均分:"+db.Student.Average(v=>v.Score));
Max 最大值:
//查询最高分 Console.WriteLine("最高分:"+db.Student.Max(v=>v.Score));
Min 最小值:
//查询最低分 Console.WriteLine("最低分:"+db.Student.Min(v=>v.Score));
Sum 求和:
//查询总分 Console.WriteLine("总分:"+db.Student.Sum(v=>v.Score));
Count 数量:
//查询学生个数 Console.WriteLine("个数:"+db.Student.Count());
执行结果:
Contains 包含:
//查询名字中包含 小 字的学生 Console.WriteLine("=====打印所哟名字包含 小 的学生====="); var query = db.Student.Where(v => v.StudentName.Contains("小")); foreach(var st in query) { Console.WriteLine(st.StudentName); }
Distinct 去重:
//去重复 Console.WriteLine("=====打印所有学生分数 去重====="); var query2 = db.Student.Select(v=>v.Score).Distinct(); foreach (var st in query2) { Console.WriteLine(st); }
执行结果:
Take 取出指定个数
//查询前3条记录 Console.WriteLine("=====查询前几条记录=========="); var query3 = db.Student.Take(3); foreach (var st in query3) { Console.WriteLine(st.StudentID+" "+st.StudentName); }
Skip 跳过指定个数
//跳过前3条记录 Console.WriteLine("======跳过前N条记录======="); var query4 = db.Student.OrderBy(v=>v.StudentID).Skip(3); //调用Skip方法之前必须使用 OrderBy排序 否则报错。 foreach (var st in query4) { Console.WriteLine(st.StudentID + " " + st.StudentName); }
结合使用 Skip 和 Take
//查询3-6条记录 Console.WriteLine("=====查询2-4条记录=========="); var query5 = db.Student.OrderBy(v=>v.StudentID).Take(4).Skip(1);//先取出4条记录 --> 再 排除1条 共3条 foreach (var st in query5) { Console.WriteLine(st.StudentID + " " + st.StudentName); }
颠倒顺序,结果不同:
//查询3-6条记录 Console.WriteLine("=====查询2-5条记录=========="); var query6 = db.Student.OrderBy(v => v.StudentID).Skip(1).Take(4);//先排除1条 --> 再取出4条记录 共4条 foreach (var st in query6) { Console.WriteLine(st.StudentID + " " + st.StudentName); }
说明: Skip().Take() 是先排除,再取数据。 Take().Skip() 是先取数据再排除,他们返回的个数不同。