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】----------操作内存中的数据的更多相关文章

  1. EF如何操作内存中的数据以及加载相关联表的数据:延迟加载、贪婪加载、显示加载

    之前的EF Code First系列讲了那么多如何配置实体和数据库表的关系,显然配置只是辅助,使用EF操作数据库才是每天开发中都需要用的,这个系列讲讲如何使用EF操作数据库.老版本的EF主要是通过Ob ...

  2. EF如何操作内存中的数据和加载外键数据:延迟加载、贪婪加载、显示加载

    EF如何操作内存中的数据和加载外键数据:延迟加载.贪婪加载.显示加载 之前的EF Code First系列讲了那么多如何配置实体和数据库表的关系,显然配置只是辅助,使用EF操作数据库才是每天开发中都需 ...

  3. [原创]java WEB学习笔记05:Servlet中的ServletConfig对象

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  4. Python学习笔记之从文件中读取数据

    10-1 Python 学习笔记:在文本编辑器中新建一个文件,写几句话来总结一下你至此学到的Python 知识,其中每一行都以“In Python you can”打头.将这个文件命名为learnin ...

  5. 【EF学习笔记11】----------查询中常用的扩展方法

    先来看一下我们的表结构: 首先毫无疑问的要创建我们的上下文对象: using (var db = new Entities()) { //执行操作 } Average 平均值: //查询平均分 Con ...

  6. scala 学习笔记(05) OOP(中)灵活的trait

    trait -- 不仅仅只是接口! 接上回继续,scala是一个非常有想法的语言,从接口的设计上就可以发现它的与众不同.scala中与java的接口最接近的概念是trait,见下面的代码: packa ...

  7. 【EF学习笔记05】----------DBContext基础查询

    遍历所有实体 //遍历所有学生 DBSet using (var db = new Entities()) { foreach (var student in db.Student) { Object ...

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

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

  9. EF学习笔记(十一):实施继承

    学习总目录:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上篇链接:EF学习笔记(十) 处理并发 本篇原文链接:Implementing Inheritance 面向对象的世界里, ...

随机推荐

  1. hdu 2063

    ps:二分匹配法,匈牙利算法.感觉自己只是学了点皮毛...这里贴上大神的微博,深入浅出的讲了匈牙利算法: http://blog.csdn.net/dark_scope/article/details ...

  2. linux信号处理时机

    信号号称所谓软中断,事实上,还是没有真正的硬件中断那样能随时改变cpu的执行流 硬件中断之所以能一发生就得到处理是因为处理器在每个指令周期的结尾都会去检查中断,这种粒度是很细的 但是信号的实现只是在进 ...

  3. ntlk_data安装小结

    <Python自然语言处理>用nltk.download()的方法安装书中所用语料库数据,不太好使.一是部分网友反映的下载很慢很慢,二是下载链接,无论书上.NLTK官网(http://nl ...

  4. MySQL文件目录格式及存放位置

    了解MYSQL的都知道,在MYSQL中建立任何一张数据表,在其数据目录对应的数据库目录下都有对应表的.frm文件,.frm文件是用来保存每个数据表的元数据(meta)信息,包括表结构的定义等,.frm ...

  5. 实际项目中积累的一些关于事件的简单应用JS代码段(能力有限,不喜轻喷,23333)

    1:鼠标移入移出显示另一张图片 var yuanquan_1 = document.getElementById("yuanquan_1" );  yuanquan_1. onmo ...

  6. Android 学习第5课,配置android

    昨天与今天都在配置安卓的开发环境, 搞的头都大了,步骤比较多 1. 先下载安装 java 的 jdk ,这个是最基础的组件 2. 再下载 android SDK,  http://developer. ...

  7. CSS3 里添加自定义字体

    添加自定义字体是从 CSS3 开始的,下载到的字体可以在网页中使用. 下载字体 在网上找字体下载,文件后缀名有 ttf.otf 等. 在 CSS 里加载字体 @font-face { font-fam ...

  8. ubuntu 调整桌面图标大小

    打开文件浏览器,例如从“位置” 里打开 “主文件夹”,点 “编辑” –>“首选项”,把 “图标视图默认值” 下的“默认缩放级别” 改为 75%.现在图标大小跟WinXP 下的差不多. 或者 在 ...

  9. 转:配置nodemanager启动weblogic服务器

    下面仅供参考,里面表格还有文件目录我是写的linux,刚刚看到原作者是windows, 后面我会把自己配置nodemanager的经过记录上来,我搞得是linux. (一)通过nodemanager本 ...

  10. oracle 查询数据库表空间大小和剩余空间

    dba_data_files:数据库数据文件信息表.可以统计表空间大小(总空间大小). dba_free_space:可以统计剩余表空间大小. 增加表空间即向表空间增加数据文件,表空间大小就是数据文件 ...