10.翻译:EF基础系列---EF中的持久性
原文链接:http://www.entityframeworktutorial.net/EntityFramework4.3/persistence-in-entity-framework.aspx
大家好,这一篇就是我们EF基础系列的最后一篇了,EF基础系列主要讲解的就是EF的一些基础理论知识,方便大家继续后面的学习。
使用EF有两种情况持久化数据到数据库中:一种是the Connected Scenario【连接模式】,另外一种是the Disconnected Scenario【断开模式】。
先看看连接模式吧
在连接模式中,使用同一个上下文类的实例,来获取或者保存数据。在连接模式中,在实体的生命周期中,EF跟踪所有的实体。连接模式在Windows应用程序中比较有用。

连接模式的优点:
- 处理操作快
- 上下文类跟踪所有的实体状态,然后当实体发生改变的时候,自动的给实体设置相应的状态。
连接模式的缺点:
- 上下文类始终是活跃的,所以数据库的连接始终是打开的。
- 需要占用更多的资源
好了,我们再看看断开模式吧
在断开模式中,不同的上下文类的实例,被用来从数据库获取数据或者保存数据到数据库中。检索数据之后,其中一个上下文就被销毁了,然后创建一个新的上下文实例,将数据保存到数据库。

断开模式有点复杂,因为上下文类的实例不再追踪实体状态了,所以你必须在每次调用SaveChanges方法之前,给每个实体设置好合适的实体状态。在上面的图中,使用Context1获取数据,然后使用Context2,作增删查改操作。Context2并不知道,实体之前有什么操作。
断开模式在Web 应用程序中很有用,或者使用远程数据库的程序中也很方便。
断开模式的优点:
- 占用更少的资源,相比连接模式来说
- 数据库连接不用打开
断开模式的缺点
- 需要在每次保存的时候,设置实体到合适的状态
- 操作速度要比连接模式稍微慢点
好了,EF的基础系列,就全部介绍完了。有不明白的可以留言,谢谢支持。
附录:
EF 6官方文档: https://docs.microsoft.com/zh-cn/ef/ef6/
EF Core官方文档:https://docs.microsoft.com/zh-cn/ef/core/
10.翻译:EF基础系列---EF中的持久性的更多相关文章
- 8.翻译:EF基础系列----EF中实体的状态
原文链接:http://www.entityframeworktutorial.net/basics/entity-states.aspx 在实体的生命周期中,EF API维护着每一个实体的状态,对于 ...
- 7.翻译:EF基础系列---EF中的实体类型
原文地址:http://www.entityframeworktutorial.net/Types-of-Entities.aspx 在Entity Framework中有两种实体类型:一种是POCO ...
- 5.翻译:EF基础系列---EF中的上下文类
原文地址:http://www.entityframeworktutorial.net/basics/context-class-in-entity-framework.aspx EF中的上下文类是一 ...
- 4.翻译:EF基础系列--EF架构
原文地址:http://www.entityframeworktutorial.net/EntityFramework-Architecture.aspx 下面的图形,展示了EF的总体架构: 让我们来 ...
- 3.翻译:EF基础系列--EF怎么工作的?
原文链接:http://www.entityframeworktutorial.net/basics/how-entity-framework-works.aspx 这里,你将会大概了解到EF是怎么工 ...
- 1.翻译:EF基础系列--什么是Entity Framework?
大家好,好久不见,EF系列之前落下了,还是打算重新整理一下. 先说说目前的打算:先简单了解一下EF基础系列-->然后就是EF 6 Code-First系列-->接着就是EF 6 DB-Fi ...
- 【Basics of Entity Framework】【EF基础系列1】
EF自己包括看视频,看MSDN零零散散的学了一点皮毛,这次打算系统学习一下EF.我将会使用VS2012来学习这个EF基础系列. 现在看看EF的历史吧: EF版本 相关版本特性介绍 EF3.5 基于数据 ...
- 6.翻译:EF基础系列---什么是EF中的实体?
原文地址:http://www.entityframeworktutorial.net/basics/what-is-entity-in-entityframework.aspx EF中的实体就是继承 ...
- 9.翻译:EF基础系列---使用EF开发的方式有哪些?
原文链接:http://www.entityframeworktutorial.net/choosing-development-approach-with-entity-framework.aspx ...
随机推荐
- Array、ArrayList、List、IEnumerable、for、foreach应用
一.Array 类 (System) 声明数组(本身也是一种变量,要先声明再使用) 1.声明数组的语法,数组大小由长度绝定: 数据类型 [] 数组名: 如: string[] student; //字 ...
- python乱码问题之爬虫篇
UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 167: illegal multibyte sequence 使 ...
- DOM笔记(十):JavaScript正則表達式
一.RegExp ECMAScript通过RegExp类型类支持正則表達式,语法和Perl类似: var exp = /pattern/flags; patternb部分是不论什么简单的或复杂的正則表 ...
- PHP如何发送邮件
例如使用163邮箱 SMTP,Simple Mail Transfer Protocol,简单邮件传输协议 保证我们的邮件服务器开启了SMTP服务 设置授权码 使用PHPMailer类发送邮件 1 ...
- js 数组 转为树形结构
题目: source = [{ id: 1, pid: 0, name: 'body' }, { id: 2, pid: 1, name: 'title' }, { id: 3, pid: 2, na ...
- Java定时器Timer的使用详解
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6374714.html 定时器在Web开发中使用得不是很多.这里主要列举一下使用定时器的步骤,方便日后使用时查 ...
- Mysql查询优化之 触发器加中间表 方法优化count()统计大数据量总数问题
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6138288.html 在上一篇博文我们提到,分页有三种方法.其中,第三种是我们最常用的.然而,在实际应用过程中 ...
- android camera preview常用格式
在Camera中推荐使用NV21和YV12,因为这两种格式支持所有的相机设备. 但是在Camera2中,推荐使用的格式则是YUV_420_888. 总的来说,在Android里面YUV用得比较多的应该 ...
- Xamarin.Android之定位
一.前言 打开我们手中的应用,可以发现越来越多的应用使用了定位,从而使我们的生活更加方便,所以本章我们将学习如何在Xamarin中进行定位的开发. 二.准备工作 因为我们的虚拟机是运行在电脑本地的,自 ...
- 转 通过phpize为php在不重新编译php情况下安装模块openssl
假定:php编译安装路径:/usr/local/php/apache编译安装路径:/usr/local/apache/php配置文件路径:/etc/php.iniphp安装源路径:/usr/sourc ...