【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 面向对象的世界里, ...
随机推荐
- linux内核分析——扒开系统调用的三层皮
万子惠 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验部分 选择2 ...
- C#中用schema验证xml的合法性
class ValidateXML { public string ErrString = string.Empty; public void ValidationEventCallBack(Obje ...
- 第三个Sprint冲刺第一天
讨论地点:宿舍 讨论成员:邵家文.李新.朱浩龙.陈俊金 讨论问题:再度强化四则运算app的功能.
- 有100个节点的AVL树最大深度是多少?
首先说AVL树的概念 1 左右子树的深度差<=1 2 左右子树都是AVL树. 其实这样算,可以倒推的. 空树 DEPTH = 0; AVL_DEPTH = 2^0+2^1+......+2^k ...
- Objective-c——UI进阶开发第一天(UIPickerView和UIDatePicker)
一.知识点 1.介绍数据选择控件UIPickerView和日期选择控件UIDatePicker控件 * UIPickerView的案例 * 点餐系统 * 城市选择 * 国旗选择 * UIDatePic ...
- vector的应用
1.0基本操作 (1)头文件: #include<vector>; (2)创建: vector<int>vec, vector<double>vec, vector ...
- world machine, 输出lightmap
一,输出黑白lightmap: 二,输出彩色lightmap: 需要注意的是:当输出黑白lightmap时,输出设备要用Height Output:当输出彩色lightmap时,输出设备要用Bitma ...
- Angular2.0-组件
截止到目前为止,Angular2.0完成了其alpha-32版本的开发,新的版本还在迭代开发当中,这其中有个问题,就是每个版本相比于以前的版本都会有一些改动,包括API方面的修改,这会导致很多基于以前 ...
- Ubuntu14.04搭建Caffe(仅CPU)
一直以来都没有写博客的习惯,后来发现以前做的工作如果不注意及时整理和记录往往丢失的很快.对我而言这是一篇具有重要意义的文章,好的习惯要持之以恒,以后的日子我会常驻博客园!由于本人水平有限,智商略低,欢 ...
- MySQL管理_数据库启动与关闭
MySQL数据库服务器通常指的的是mysqld,而命令行mysql则是mysql客户端程序,这两个概念通常容易混淆.通常启动mysql服务器即是启动mysqld进程,mysqld启动后,可以通过mys ...