ObjectStateEntry.Delete 方法将实体标记为已删除 - 但在之前或之后

本文关键字:或之后 删除 方法 Delete 实体 记为 ObjectStateEntry | 更新日期: 2023-09-27 18:35:07

在 ObjectStateEntry 的定义中.删除方法

MSDN 说:

"Marks an entity as deleted."

但这是否意味着它首先删除它,然后在它将其标记为已删除之后才删除它?还是先标记它,然后从 Db 中删除条目?

ObjectStateEntry.Delete 方法将实体标记为已删除 - 但在之前或之后

ObjectStateManager 获取有关您对实体所做的更改的所有信息。因此,当您调用myContext.Delete(myEntity)时,您的实体将在Objectstatemanger中标记为已删除。但此时它不会被删除。

当您调用 myContext.SaveChanges() 时,它将被删除;

仅当调用 Context.SaveChanges() 方法时,才会应用对数据库的更改。因此,标记为"已删除"的实体仅在 EF 实体缓存中。