先来看一下我们的表结构:

首先毫无疑问的要创建我们的上下文对象:

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() 是先取数据再排除,他们返回的个数不同。

【EF学习笔记11】----------查询中常用的扩展方法的更多相关文章

  1. SQL学习笔记之项目中常用的19条MySQL优化

    在写文章之前,首先感谢 飞友科技 陆老师提供的文档.. 声明一下:下面的优化方案都是基于 “ Mysql-索引-BTree类型 ” 的 0x00 EXPLAIN 做MySQL优化,我们要善用 EXPL ...

  2. Java学习笔记五:Java中常用的运算符

    Java中常用的运算符 运算符是一种“功能”符号,用以通知 Java 进行相关的运算.譬如,我们需要将变量 score 的值设置为 20 ,这时候就需要一个“=”,告诉程序需要进行赋值操作. Java ...

  3. ASP.Net MVC开发基础学习笔记:二、HtmlHelper与扩展方法

    一.一个功能强大的页面开发辅助类—HtmlHelper初步了解 1.1 有失必有得 在ASP.Net MVC中微软并没有提供类似服务器端控件那种开发方式,毕竟微软的MVC就是传统的请求处理响应的回归. ...

  4. Linux学习笔记3——Linux中常用系统管理命令

    stat 显示指定文件的相关信息,比ls命令显示内容更多 who 显示在线登录用户 hostname 显示主机名称 uname显示系统信息 top 显示当前系统中耗费资源最多的进程 ps 显示瞬间的进 ...

  5. SpringBoot学习笔记(11)-----SpringBoot中使用rabbitmq,activemq消息队列和rest服务的调用

    1. activemq 首先引入依赖 pom.xml文件 <dependency> <groupId>org.springframework.boot</groupId& ...

  6. Hadoop学习笔记—11.MapReduce中的排序和分组

    一.写在之前的 1.1 回顾Map阶段四大步骤 首先,我们回顾一下在MapReduce中,排序和分组在哪里被执行: 从上图中可以清楚地看出,在Step1.4也就是第四步中,需要对不同分区中的数据进行排 ...

  7. Linux学习笔记2——Linux中常用文件目录操作命令

    ls 显示文件和目录列表 -l 列出文件的详细信息 -a 列出当前目录所有文件,包含隐藏文件 mkdir 创建目录 -p 父目录不存在情况下先生成父目录 cd 切换目录 touch 生成一个空文件 e ...

  8. [学习笔记]node.js中的path.extname方法

    path.extname 返回path路径文件扩展名,如果path以 ‘.' 为结尾,将返回 ‘.',如果无扩展名 又 不以'.'结尾,将返回空值. path.extname('index.html' ...

  9. 【EF学习笔记12】----------解释查询和本地查询 区分 Enumerable 和 Queryable

    简单介绍:Enumerable 和 Queryable 他们都是静态类,位于命名控件 System.Linq下,分别为IEnumerable<T>和IQueryable<T>提 ...

随机推荐

  1. cassandra 环境搭建

    1 下载安装包 http://www.planetcassandra.org/cassandra/?dlink=http://downloads.datastax.com/community/dsc- ...

  2. 网页中模拟Excel电子表格实例分享

    原文来自http://www.6excel.com/doc/20049 一.电子表格中用到的快捷键: ← → ↑ ↓  :左,右,上,下 Home :当前行的第一列 End  :当前行的最后一列 Sh ...

  3. 期望DP

    BZOJ 1415 #include <iostream> #include <cstring> #include <algorithm> #include < ...

  4. python模块之os

    os模块提供了对目录或者文件的新建/删除/查看文件属性,还提供了对文件以及目录的路径操作.比如说:绝对路径,父目录-- os.sep可以取代操作系统特定的路径分隔符.windows下为 "\ ...

  5. Smart210学习记录----nand flash驱动

    [详解]如何编写Linux下Nand Flash驱动  :http://www.cnblogs.com/linux-rookie/articles/3016990.html 当读写文件请求到来的时候, ...

  6. find 命令的参数详解

    使用name选项 文件名选项是find命令最常用的选项,要么单独使用该选项,要么和其他选项一起使用. 可以使用某种文件名模式来匹配文件,记住要用引号将文件名模式引起来.不管当前路径是什么,如果想要在自 ...

  7. 【IOI2000】邮局设置问题

    现在连基础DP都要看题解和代码才能写出来了,怎么办嘛QAQ 原题: 一些村庄建在一条笔直的高速公路边上,我们用一条坐标轴来描述这条公路,每个村庄的坐标都是整数,没有两个村庄的坐标相同.两个村庄的距离定 ...

  8. LeetCode-Group Anagrams

    Given an array of strings, group anagrams together. For example, given: ["eat", "tea& ...

  9. Notepad++配置Python开发环境

    1. 安装Python 1 下载 我选择了32位的2.7版本.https://www.python.org/ftp/python/2.7.8/python-2.7.8.msi 2. 安装 安装的时候可 ...

  10. ABBYY有哪些图像处理选项

    ABBYY PDF Transformer+ 这款Ocr图文识别软件提供多种图像处理选项,可提高源图像的质量,便于准确地识别光学字符.我们扫描纸质文档或从图像文件创建 PDF 时,务必选择合适的图像处 ...