先来看一下我们的表结构:
首先毫无疑问的要创建我们的上下文对象:
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();
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(); //调用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().Skip();//先取出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().Take();//先排除1条 --> 再取出4条记录 共4条
foreach (var st in query6)
{
Console.WriteLine(st.StudentID + " " + st.StudentName);
}
说明: Skip().Take() 是先排除,再取数据。 Take().Skip() 是先取数据再排除,他们返回的个数不同。