您好
如果有人能详细说明这三者之间的区别,我是EF的新手,有时MergeOption.NoTracking恰好有效,而有时候是ObjectContext.Detach,但我从来没有得到它的要点。
我想知道我应该使用哪些情况。此外,如果有一个对象图附加到某个实体(通过触发Include函数或通过调用EntityReference.Load())如果
应该调用什么
1.)我不希望其他对象附加到实体上
2.)我想要实体引用的所有对象
非常感谢任何帮助
问候
西仁
答案 0 :(得分:2)
MergeOption.NoTracking
用于提高加载不会被修改的实体的性能。在这种情况下,实体不会被上下文跟踪,但它仍然附加并且延迟加载。
ObjectContext.Detach
从对象上下文范围中完全删除实体,因此不会跟踪实体,延迟加载不起作用。
IEntityWithChangeTracker.SetChangeTracker
更像EntityObject
的基础设施。当实体被实现并附加到上下文时,它在EF内部被大量使用。