原文链接: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/