10.翻译:EF基础系列---EF中的持久性

时间:2024-08-05 16:07:38

原文链接:http://www.entityframeworktutorial.net/EntityFramework4.3/persistence-in-entity-framework.aspx

大家好,这一篇就是我们EF基础系列的最后一篇了,EF基础系列主要讲解的就是EF的一些基础理论知识,方便大家继续后面的学习。

使用EF有两种情况持久化数据到数据库中:一种是the Connected Scenario【连接模式】,另外一种是the Disconnected Scenario【断开模式】。

先看看连接模式吧

在连接模式中,使用同一个上下文类的实例,来获取或者保存数据。在连接模式中,在实体的生命周期中,EF跟踪所有的实体。连接模式在Windows应用程序中比较有用。

10.翻译:EF基础系列---EF中的持久性

连接模式的优点:

  1. 处理操作快
  2. 上下文类跟踪所有的实体状态,然后当实体发生改变的时候,自动的给实体设置相应的状态。

连接模式的缺点:

  1. 上下文类始终是活跃的,所以数据库的连接始终是打开的。
  2. 需要占用更多的资源

好了,我们再看看断开模式吧

在断开模式中,不同的上下文类的实例,被用来从数据库获取数据或者保存数据到数据库中。检索数据之后,其中一个上下文就被销毁了,然后创建一个新的上下文实例,将数据保存到数据库。

10.翻译:EF基础系列---EF中的持久性

断开模式有点复杂,因为上下文类的实例不再追踪实体状态了,所以你必须在每次调用SaveChanges方法之前,给每个实体设置好合适的实体状态。在上面的图中,使用Context1获取数据,然后使用Context2,作增删查改操作。Context2并不知道,实体之前有什么操作。

断开模式在Web 应用程序中很有用,或者使用远程数据库的程序中也很方便。

断开模式的优点:

  1. 占用更少的资源,相比连接模式来说
  2. 数据库连接不用打开

断开模式的缺点

  1. 需要在每次保存的时候,设置实体到合适的状态
  2. 操作速度要比连接模式稍微慢点

好了,EF的基础系列,就全部介绍完了。有不明白的可以留言,谢谢支持。

附录:

EF 6官方文档:  https://docs.microsoft.com/zh-cn/ef/ef6/

EF Core官方文档:https://docs.microsoft.com/zh-cn/ef/core/