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

时间: 2024-10-10 06:29:24

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

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

一.一个功能强大的页面开发辅助类—HtmlHelper初步了解 1.1 有失必有得 在ASP.Net MVC中微软并没有提供类似服务器端控件那种开发方式,毕竟微软的MVC就是传统的请求处理响应的回归.所以抛弃之前的那种事件响应的模型,抛弃服务器端控件也理所当然. 但是,如果手写Html标签效率又比较低,可重用度比较低.这时,我们该怎样来提高效率呢?首先,经过上篇我们知道可以通过ViewData传递数据,于是我们可以写出以下的Html代码: <input name="UserName&quo

【知了堂学习笔记】java中常用集合的理解

最近学习了java中常用集合类的一些知识,在这里作为一只小白,我来谈谈我的理解,顺带总结知识点. 引入:在没有接触之前,听到集合,给我感觉是想到了数学中的集合一样,里面存放着一个一个的元素.其实不然,这个集合也就差不多,是用来存放元素的容器. Java中的集合类包含的内容很多而且很重要,很多数据的存储和处理(排序,去重,筛选等)都需要通过集合类来完成. 今天我要谈的主要是,如下图所示: 1.Collection Collection是最基本的集合类型,若要检查Collection中的元素,可以使

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

一.写在之前的 1.1 回顾Map阶段四大步凑 首先,我们回顾一下在MapReduce中,排序和分组在哪里被执行: 从上图中可以清楚地看出,在Step1.4也就是第四步中,需要对不同分区中的数据进行排序和分组,默认情况下,是按照key进行排序和分组. 1.2 实验场景数据文件 在一些特定的数据文件中,不一定都是类似于WordCount单次统计这种规范的数据,比如下面这类数据,它虽然只有两列,但是却有一定的实践意义. 3 3 3 2 3 1 2 2 2 1 1 1 (1)如果按照第一列升序排列,当

我的java学习笔记(11)关于装箱、参数可变方法和枚举类型

1.所有的基本类型都有一个与之对应的类,通常这些类称之为包装器. 2.对象包装器类是不可变的,即一旦构造了包装器,就不允许更改包装在其中的值.对象包装器还是final,因此不能定义它们的子类. 3.假设定义一个整型数组列表,而尖括号中的类型参数不允许是基本类型,即不允许ArrayList<int>,这里可以使用Integer对象包装器类. Array<Integer> l = new ArrayList<>(); 4.装箱和拆箱是编译器认可的,而不是虚拟机.编译器在生成

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

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

mybatis学习笔记(11)-多对多查询

mybatis学习笔记(11)-多对多查询 mybatis学习笔记11-多对多查询 示例 多对多查询总结 resultMap总结 本文实现多对多查询,查询用户及用户购买商品信息. 示例 查询主表是:用户表 关联表:由于用户和商品没有直接关联,通过订单和订单明细进行关联,所以关联表:orders.orderdetail.items sql SELECT orders.*, user.username, user.sex, user.address, orderdetail.id orderdeta

mybatis学习笔记(11)-一对多查询

mybatis学习笔记(11)-一对多查询 mybatis学习笔记11-一对多查询 示例 小结 本文实现一对多查询,查询订单及订单明细的信息 示例 sql 确定主查询表:订单表 确定关联查询表:订单明细表 在一对一查询基础上添加订单明细表关联即可. SELECT orders.*, user.username, user.sex, user.address, orderdetail.id orderdetail_id, orderdetail.items_id, orderdetail.item

sqlite学习笔记11:C语言中使用sqlite之删除记录

最后一节,这里记录下如何删除数据. 前面所有的代码都继承在这里了,在Ubuntu14.04和Mac10.9上亲测通过. #include <stdio.h> #include <stdlib.h> #include "sqlite/sqlite3.h" #define DB_NANE "sqlite/test.db" sqlite3 *db = NULL; char* sql = NULL; char *zErrMsg = NULL; con

lua学习笔记11:lua中的小技巧

lua中的小技巧,即基础lua语言本身的特种,进行一个些简化的操作 一 巧用or x = x or v 等价于: if not x then x = v end 如果x为nil或false,就给他赋值为 二 三元运算符实现 a and b or c 类似C语言: a ? b : c and 的运算由优先级高于or lua学习笔记11:lua中的小技巧,布布扣,bubuko.com