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