【EF学习笔记11】----------查询中常用的扩展方法
先来看一下我们的表结构:

首先毫无疑问的要创建我们的上下文对象:
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】----------查询中常用的扩展方法的更多相关文章
- SQL学习笔记之项目中常用的19条MySQL优化
在写文章之前,首先感谢 飞友科技 陆老师提供的文档.. 声明一下:下面的优化方案都是基于 “ Mysql-索引-BTree类型 ” 的 0x00 EXPLAIN 做MySQL优化,我们要善用 EXPL ...
- Java学习笔记五:Java中常用的运算符
Java中常用的运算符 运算符是一种“功能”符号,用以通知 Java 进行相关的运算.譬如,我们需要将变量 score 的值设置为 20 ,这时候就需要一个“=”,告诉程序需要进行赋值操作. Java ...
- ASP.Net MVC开发基础学习笔记:二、HtmlHelper与扩展方法
一.一个功能强大的页面开发辅助类—HtmlHelper初步了解 1.1 有失必有得 在ASP.Net MVC中微软并没有提供类似服务器端控件那种开发方式,毕竟微软的MVC就是传统的请求处理响应的回归. ...
- Linux学习笔记3——Linux中常用系统管理命令
stat 显示指定文件的相关信息,比ls命令显示内容更多 who 显示在线登录用户 hostname 显示主机名称 uname显示系统信息 top 显示当前系统中耗费资源最多的进程 ps 显示瞬间的进 ...
- SpringBoot学习笔记(11)-----SpringBoot中使用rabbitmq,activemq消息队列和rest服务的调用
1. activemq 首先引入依赖 pom.xml文件 <dependency> <groupId>org.springframework.boot</groupId& ...
- Hadoop学习笔记—11.MapReduce中的排序和分组
一.写在之前的 1.1 回顾Map阶段四大步骤 首先,我们回顾一下在MapReduce中,排序和分组在哪里被执行: 从上图中可以清楚地看出,在Step1.4也就是第四步中,需要对不同分区中的数据进行排 ...
- Linux学习笔记2——Linux中常用文件目录操作命令
ls 显示文件和目录列表 -l 列出文件的详细信息 -a 列出当前目录所有文件,包含隐藏文件 mkdir 创建目录 -p 父目录不存在情况下先生成父目录 cd 切换目录 touch 生成一个空文件 e ...
- [学习笔记]node.js中的path.extname方法
path.extname 返回path路径文件扩展名,如果path以 ‘.' 为结尾,将返回 ‘.',如果无扩展名 又 不以'.'结尾,将返回空值. path.extname('index.html' ...
- 【EF学习笔记12】----------解释查询和本地查询 区分 Enumerable 和 Queryable
简单介绍:Enumerable 和 Queryable 他们都是静态类,位于命名控件 System.Linq下,分别为IEnumerable<T>和IQueryable<T>提 ...
随机推荐
- hdu 2073
ps:感觉纯数学题.....我的思路就是找规律,发现dp(x+y) 就是 (0,x+y)的值,然后再加上x*根号2.就是他的距离.然后两个距离相减的绝对值就是两个点之间的距离了. 代码: #inclu ...
- no package 'webkit-1.0' found
linux安装程序的时候 ./configure 提示 no package 'webkit-1.0' found 解决方法: 安装 libwebkitgrk-dev包 1. sudo apt-get ...
- Javascript笔记一
Javascript: ECMAscript :相当于翻译器 翻译电脑于代码 解释器 DOM document object model 文档 对象 模型 --->document 获取 ...
- SCC(强连通分量)
1.定义: 在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(SC---strongly connected). 有向图中的极大强连通子图,成为强连通分量(SCC---strongly ...
- DAO接口及实现类
DAO接口中定义了所有的用户操作,如添加记录.删除记录及查询记录. package chapter13; import java.util.*; public interface UserDAO { ...
- 【 D3.js 入门系列 --- 5 】 如何添加坐标轴
第3节中做了一个图标,但没有为它添加一个相应的坐标轴,这样不知道每一个柱形到底有多长.这一节做一个坐标轴. D3中的坐标轴都是以 svg 图的形式出现的,这也是为什么在第3节中要使用 svg 的方法做 ...
- MMDrawerController 的使用
1.AppDelegate .h 文件:#import "MMDrawerController .h" @property (strong, nonatomic) MMDrawer ...
- SQLite语句练习题
1. 查询Student表中的所有记录的Sname.Ssex和Class列. 2. 查询教师所有的单位即不重复的Depart列. 3. 查询Student表的所有记录. 4. 查询Score表中成绩在 ...
- [转帖]DAS、NAS、SAN、iSCSI 存储方案概述
目前服务器所使用的专业存储方案有DAS.NAS.SAN.iSCSI几种.存储根据服务器类型可以分为:封闭系统的存储和开放系统的存储: (1)封闭系统主要指大型机. (2)开 ...
- Hibernate之mappedBy
Hibernate之mappedBy 摘要: 一.mappedBy单向关系不需要设置该属性,双向关系必须设置,避免双方都建立外键字段 数据库中1对多的关系,关联关系总是被多方维护的即外键建在多方,我们 ...