我正在使用实体框架,它的某些部分功能对我来说仍然不清楚。比较难理解的主要有:
SubmitChanges
过程;- 调用更新-删除-插入方法的顺序;
- 对此事的认知
ObjectStateManager
- 分离
EntityState
,它是提交过程的一部分;
提供您的解释或提供一些有用的链接。
我正在使用实体框架,它的某些部分功能对我来说仍然不清楚。比较难理解的主要有:
SubmitChanges
过程;ObjectStateManager
EntityState
,它是提交过程的一部分;提供您的解释或提供一些有用的链接。
ObjectStateManager
是一个暴露被跟踪实体信息的组件。每个可以被 EF 持久化的实体都必须被跟踪 = 附加。EF 不知道分离的实体(它们不被跟踪),因此在调用时不会保存它们的更改SaveChanges
(EF 中没有SubmitChanges
)。跟踪包括维护有关实体或关系的初始状态以及对它们所做的更改的信息。它还包含实体的全局状态。
调用 SaveChanges 的过程取决于配置 EF 以跟踪更改的方式、获取实体的方式以及所做的更改。
更改跟踪是一项功能,它允许 EF 跟踪应用于附加到上下文的实体上的更改(默认情况下,查询加载的每个实体都是附加的)。EF 包含更改跟踪的版本:
SaveChanges
它时,它会比较实体的存储状态(在加载实体时获得)和实体中的当前数据并相应地设置其状态。SaveChanges
时,状态已经设置好了。数据修改操作的顺序是EF内部实现。基本顺序由描述实体之间依赖关系的映射定义。