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 ...
随机推荐
- Bootstrap相关网站中简单的等待提醒
一.在页面中加入如下代码 <div class="modal fade" tabindex="-1" role="dialog" id ...
- Spring+MyBatis纯注解零XML整合(4)
不得不说,利用XML作为配置文件是一个非常好的想法,它可以轻松地实现配置集中化,而且修改之后无需再次编译.然而,由于大多数情况下开发者基本都会拿到程序的源码,加之对于各种XML配置文件一般情况下也只有 ...
- intellij idea 插件安装、卸载
windows 下 intellij idea 插件安装.卸载 安装(在线安装): 根据图一.图二所示(蓝色标记) 卸载: 根据图一所示(橙色标记) 启用.关闭插件: 根据图一所示(绿色标记) 安 ...
- SpringMVC学习笔记六:使用Formatter解析或格式化数据
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6832903.html Converter可以将一种类型转换成另一种类型,是任意Object之间的类型 ...
- unique_ptr与std::move的使用
形参为unique_ptr u2,而后实参为std::move(unique_ptr u1),这样会将原本u1的内存传递给u2,避免了传递拷贝.例如: void fun(std::unique_ptr ...
- Laravel中pluck的使用——返回指定的字段值信息列表
$model = self::where(['is_delete' => 0, 'is_on_sale' => 1]) ->whereIn('goods.cat_id', Goods ...
- iOS UI01_Label
@implementation AppDelegate -(void)dealloc { [_window release]; [superdealloc]; } - (BOOL)applicatio ...
- 仿饿了么增加购物车旋转控件 - 自带闪转腾挪动画 的button
本篇文章已授权微信公众号 guolin_blog (郭霖)独家公布 转载请标明出处: http://blog.csdn.net/zxt0601/article/details/54235736 本文出 ...
- 【Linux】Ubuntu13.10搭建gitlab报错信息及解决
error: Gitlab "bundler: command not found: unicorn_rails"soluton: cd /home/git/gitlab git ...
- 双足步行机器人的ZMP与CoP检测
静态步行与动态步行 机器人步态分为静态步行和动态步行.当机器人做静态步行运动时,身体的各个部分运动速度很小,机器人的整体稳定性较易控制.静态步行稳定性采用机器人的重心地面投影点(Center of G ...