【EF学习笔记05】----------操作内存中的数据
SingleOrDefault实验
//SingleOrDefault实验
using (var db = new Entities())
{
var classes = new Classes()
{
ClassName = "英语10501"
};
db.Classes.Add(classes);//标记添加 var query = from v in db.Classes
where v.ClassName == "英语10501"
select v;
ObjectDumper.Write(query.SingleOrDefault());
//此处输出结果为 NULL 说明SingleOrDefault 方法是直接从数据库中读取
};
说明:我们添加一个班级“英语10501”,并没有调用SaveChanges方法更新到数据库中。使用SingleOrDefault方法查询刚添加的班级。
SQL语句追踪:只执行了一条查询语句,并未执行新增,说明数据存在于内存之中

执行结果:

结论:Single、First、SingleOrDefault 方法是都是直接从数据库中读取
查询内存中的数据
//查询内存中的数据
using (var db = new Entities())
{
Console.WriteLine(db.Student.Local.Count);//输出 0 未执行sql 没有数据
}
先加载数据库再查询本地数据
//先加载数据库再查询本地数据
using (var db = new Entities())
{
var query = from v in db.Student select v;
Console.WriteLine("遍历之前:打印个数:" + db.Student.Local.Count);//输出 0 foreach (var st in query)
{
ObjectDumper.Write(st.StudentName);
}
Console.WriteLine("遍历之后:打印个数:" + db.Student.Local.Count);//输出 11
}
执行结果:

Load方法把数据加载到内存
//上面的方法每次操作都要先遍历 改用load
using (var db = new Entities())
{
//using System.Data.Entity; 扩展方法
db.Student.Load();
Console.WriteLine(db.Student.Local.Count); var query = from v in db.Classes select v;
query.Load();
Console.WriteLine(db.Classes.Local.Count);
}
执行结果:

说明:Load为扩展方法,需要先导入命名空间:using System.Data.Entity;
【EF学习笔记05】----------操作内存中的数据的更多相关文章
- EF如何操作内存中的数据以及加载相关联表的数据:延迟加载、贪婪加载、显示加载
之前的EF Code First系列讲了那么多如何配置实体和数据库表的关系,显然配置只是辅助,使用EF操作数据库才是每天开发中都需要用的,这个系列讲讲如何使用EF操作数据库.老版本的EF主要是通过Ob ...
- EF如何操作内存中的数据和加载外键数据:延迟加载、贪婪加载、显示加载
EF如何操作内存中的数据和加载外键数据:延迟加载.贪婪加载.显示加载 之前的EF Code First系列讲了那么多如何配置实体和数据库表的关系,显然配置只是辅助,使用EF操作数据库才是每天开发中都需 ...
- [原创]java WEB学习笔记05:Servlet中的ServletConfig对象
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- Python学习笔记之从文件中读取数据
10-1 Python 学习笔记:在文本编辑器中新建一个文件,写几句话来总结一下你至此学到的Python 知识,其中每一行都以“In Python you can”打头.将这个文件命名为learnin ...
- 【EF学习笔记11】----------查询中常用的扩展方法
先来看一下我们的表结构: 首先毫无疑问的要创建我们的上下文对象: using (var db = new Entities()) { //执行操作 } Average 平均值: //查询平均分 Con ...
- scala 学习笔记(05) OOP(中)灵活的trait
trait -- 不仅仅只是接口! 接上回继续,scala是一个非常有想法的语言,从接口的设计上就可以发现它的与众不同.scala中与java的接口最接近的概念是trait,见下面的代码: packa ...
- 【EF学习笔记05】----------DBContext基础查询
遍历所有实体 //遍历所有学生 DBSet using (var db = new Entities()) { foreach (var student in db.Student) { Object ...
- EF学习笔记(十二):EF高级应用场景
学习总目录:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上篇链接:EF学习笔记(十一):实施继承 本篇原文链接:Advanced Entity Framework Scenari ...
- EF学习笔记(十一):实施继承
学习总目录:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上篇链接:EF学习笔记(十) 处理并发 本篇原文链接:Implementing Inheritance 面向对象的世界里, ...
随机推荐
- 命令参数解析库JCommonder
1.JCommander 是一个非常小的Java 类库,用来解析命令行参数. 2.参数类型:可以是任意类型,但我使用的只有 List,String. @Parameter(name="-s& ...
- nodejs 安装配置 for ubuntu
安装nodejs sudo apt-get update sudo apt-get install nodejs -g #全局安装 安装npm sudo apt-get install npm #查 ...
- PC缺少一个或多个网络协议 qq可登录(win10)
打开适配器连接 1打开网络适配器 2卸载microsoft 3 网络客户端 4重启
- POJ-1182 分组并查集
今天刚发现,之前做的并查集只是贴模板基本就能过,题意改变一点,自己还是不懂,其实我还没入门呢... 题意:食物链,A吃B,B吃C,C吃A,输入m组数据: 1 a b:a 和 b 是同一类 2 a b: ...
- c++嵌套类-内存分配
首先看下列代码:int main(){ double *p; printf("sizeof(int):%d\nsizeof(double):%d\nsizeof(ptr):%d\ ...
- SIFT特征提取分析(转载)
转载自: http://blog.csdn.net/abcjennifer/article/details/7639681 SIFT(Scale-invariant feature transform ...
- animate.css 一些常用的CSS3动画效果
大家已经开始在项目中使用一些CSS3动画效果了吧,这让网站在高端浏览器上看起来很上流.animate.css是一个老外做的各种CSS3动画的合集,比较全,也很炫,大家可以参考学习一下. 项目主页:ht ...
- pelican-python install
参考: http://www.cnblogs.com/ballwql/p/pelican.html 写的原因是,我的安装环境与原作者的安装过程有不一样的地方,所有总结一下. 本文将从以下几个方面进行描 ...
- Android Service初始
一.Service概念 1.Service是一个应用程序组件 2.Service没有图像化界面 3.Service通常用来处理一些耗时比较长的操作 4.可以使用Service更新ContentProv ...
- 使Maven 2在package、install等阶段跳过运行Test的配置
方法1: To skip running the tests for a particular project, set the skipTests property to true.<proj ...