8.翻译:EF基础系列----EF中实体的状态

时间:2023-03-08 15:52:56

原文链接:http://www.entityframeworktutorial.net/basics/entity-states.aspx

在实体的生命周期中,EF API维护着每一个实体的状态,对于每个实体来说,通过上下文类对其执行的操作的时候,都有一个状态。实体的状态是一个枚举,在EF 6中是System.Data.Entity.EntityState类型的枚举,而在EF Core中是这样的类型的枚举Microsoft.EntityFrameworkCore.EntityState。枚举的值有以下这些:

  1. Added
  2. Modified
  3. Deleted
  4. Unchanged
  5. Detached

上下文类不仅包含从数据库中检索到的对所有实体对象的引用,还可以跟踪实体状态并维护对实体属性所做的修改。这一特征就称为变更跟踪。

实体状态从Unchanged-->Modified状态,是上下文自动处理的。其他状态的改变,必须要显式的使用DBContext或者DbSet中的方法来变更。(后面章节你将会学到。)

当上下文类的SaveChanges方法被调用的时候,EF API 就会根据实体的状态执行相应的操作.(增删查改操作)。实体状态是Added,就执行Insert命令,实体状态是Modified就执行Update命令,实体状态是Deleted就执行删除操作。注意的是,上下文不会跟踪实体的Detached状态,请看下面图形:

8.翻译:EF基础系列----EF中实体的状态

实体状态在Entity Framework中起着很重要的作用。

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

附录:

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

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