遍历所有实体

//遍历所有学生 DBSet
using (var db = new Entities())
{
foreach (var student in db.Student)
{
ObjectDumper.Write(student.StudentName);
}
};

说明:打印所有学生的姓名

根据条件查询

using (var db = new Entities())
{
//查询所有出生日期在1991年1月1日之后的学生
var day = Convert.ToDateTime("1991-1-1");
var students = from v in db.Student where v.Birthday >= day select v;
foreach (var student in students)
{
ObjectDumper.Write(student.StudentName+"-"+student.Birthday);
}
};

执行结果:

此处注意:使用linq和lamba时,变量一定要提前转存,不能在linq内部使用C#函数。

错误的写法:

using (var db = new Entities())
{
var students = from v in db.Student where v.Birthday >= Convert.ToDateTime("1991-1-1") select v;
foreach (var student in students)
{
ObjectDumper.Write(student.StudentName+"-"+student.Birthday);
}
};

这样写直接就会报错:

按照生日排序 升序排列(默认)

using (var db = new Entities())
{
var students = from v in db.Student
orderby v.Birthday
select v;
foreach (var student in students)
{
ObjectDumper.Write(student);
}
};

降序:descending

var students = from v in db.Student
orderby v.Birthday descending
select v;

查询单个实体 Find方法

//find查询单个实体
using (var db = new Entities())
{
var student = db.Student.Find();
ObjectDumper.Write(student);
};

说明:根据主键查询Student信息,如果找不到,则返回 NULL

查询单个实体 Single方法

//Single查询单个实体
using (var db = new Entities())
{
var student = from v in db.Student
where v.StudentName=="张三"
select v;
//single方法 查不到记录 或者 多条记录 都会报错
ObjectDumper.Write(student.Single());
};

说明:调用single方法查不到记录 或者 多条记录 都会报错

查询单个实体 SingleOrDefault方法

//SingleOrDefault查询单个实体
using (var db = new Entities())
{
var student = from v in db.Student
where v.StudentName == "李四"
select v;
//SingleOrDefault方法 查不到记录返回null ,如果查询到多条记录会报错
ObjectDumper.Write(student.SingleOrDefault());
};

说明:调用SingleOrDefault方法 查不到记录放回NULL 如果查询到多条记录报错

完整案例:

//遍历所有学生
using (var db = new Entities())
{
var students = from v in db.Student select v;
foreach (var student in students)
{
ObjectDumper.Write(student);
}
}; Console.WriteLine("==========按照生日排序===========");
//按照生日排序 升序
using (var db = new Entities())
{
var students = from v in db.Student
orderby v.Birthday descending
select v;
foreach (var student in students)
{
ObjectDumper.Write(student);
}
}; Console.WriteLine("==========find查询单个实体===========");
//find查询单个实体
using (var db = new Entities())
{
var student = db.Student.Find();
ObjectDumper.Write(student);
}; Console.WriteLine("==========single查询单个实体===========");
//Single查询单个实体
using (var db = new Entities())
{
var student = from v in db.Student
where v.StudentName=="张三"
select v;
//single方法 查不到记录 或者 多条记录 都会报错
ObjectDumper.Write(student.Single());
}; Console.WriteLine("==========SingleOrDefault查询单个实体===========");
//SingleOrDefault查询单个实体
using (var db = new Entities())
{
var student = from v in db.Student
where v.StudentName == "李四"
select v;
//SingleOrDefault方法 查不到记录返回null ,如果查询到多条记录会报错
ObjectDumper.Write(student.SingleOrDefault());
};

【EF学习笔记05】----------DBContext基础查询的更多相关文章

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

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

  2. 【EF学习笔记05】----------操作内存中的数据

    SingleOrDefault实验 //SingleOrDefault实验 using (var db = new Entities()) { var classes = new Classes() ...

  3. EF学习笔记(十二):EF高级应用场景

    学习总目录:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上篇链接:EF学习笔记(十一):实施继承 本篇原文链接:Advanced Entity Framework Scenari ...

  4. EF学习笔记(八):更新关联数据

    学习笔记主目录链接:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上一篇链接:EF学习笔记(七):读取关联数据 本篇原文链接:Updating Related Data 本篇主要考 ...

  5. EF学习笔记(十) 处理并发

    总目录:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上一篇:EF学习笔记(九):异步处理和存储过程 本篇原文链接:Handling Concurrency Concurrency ...

  6. EF学习笔记(九):异步处理和存储过程

    总目录:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上一篇:EF学习笔记(八):更新关联数据 本篇原文:Async and Stored Procedures 为何要采用异步? ...

  7. 「学习笔记」字符串基础:Hash,KMP与Trie

    「学习笔记」字符串基础:Hash,KMP与Trie 点击查看目录 目录 「学习笔记」字符串基础:Hash,KMP与Trie Hash 算法 代码 KMP 算法 前置知识:\(\text{Border} ...

  8. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  9. IBatis.Net学习笔记六--再谈查询

    在IBatis.Net学习笔记五--常用的查询方式 中我提到了一些IBatis.Net中的查询,特别是配置文件的写法. 后来通过大家的讨论,特别是Anders Cui 的提醒,又发现了其他的多表查询的 ...

随机推荐

  1. Startup key combinations for Intel-based Macs

    Learn about the startup key combinations you can use with Intel-based Macs. You can use the followin ...

  2. 2016年12月11日 php面向对象

    面向对象 1.类(由众多对象中抽象出来的) 2.对象(一切皆对象,由类实例化出来的). 类: 求圆的面积 面向过程的方式 1.将圆抽象为一个类 2.实例化对象 class Qiu { var $ban ...

  3. Android 学习第6课,循环功能

    package ch02; public class jiujiuchengfa { public static void main(String[] args) { // TODO 自动生成的方法存 ...

  4. LPTHW 笨方法学python 19章

    本章节,我只是把所有的输出加上了自己的注释. #!/usr/bin/env python # -*- coding:utf-8 -*- def cheese_and_crakers(cheese_co ...

  5. 多线程、多进程、协程、缓存(memcache、redis)

    本节内容: 线程: a:基本的使用: 创建线程: 1:方法 import threading def f1(x): print(x) if __name__=='__main__': t=thread ...

  6. 通过printf设置Linux终端输出的颜色和显示方式

    转载自:http://www.cnblogs.com/clover-toeic/p/4031618.html 在Linux终端下调试程序时,有时需要输出大量信息.若能控制字体的颜色和显示方式,可使输出 ...

  7. Jena TDB 101 Java API without Assembler

    Update on 2015/05/12 ongoing tutorials site on https://github.com/zhoujiagen/semanticWebTutorialUsin ...

  8. Codeforces Round #378 (Div. 2) A B C D 施工中

    A. Grasshopper And the String time limit per test 1 second memory limit per test 256 megabytes input ...

  9. svn服务器迁移(生成dump)

    首先介绍一下dump文件 一定要进入VisualSVN服务端的安装目录里的bin目录下面,然后再执行svnadmin  相关命令. 不然会出现下图中的“svnadmin不是内部命令或外部命令,也不是可 ...

  10. CentOS 6.8 新安装系统的网络IP配置(转载)

    实例环境 虚拟机:VMware 11.1.0 系统:CentOS 6.6 # ifconfig -a       << 查看所有网卡的状态 2. # vi /etc/sysconfig/n ...