在ADO.net EF中,何时应该调用context.Attach()和context.Detach()方法以及这些调用如何影响返回或插入的数据?
答案 0 :(得分:2)
附加对象(实体框架)
http://msdn.microsoft.com/en-us/library/bb896271.aspx
分离对象(实体框架)
http://msdn.microsoft.com/en-us/library/bb738611.aspx
答案 1 :(得分:2)
这是其中一个问题,“如果你不得不问,你可能不应该这样做。”实体框架将隐含地附加实体,以防这种情况显然需要发生。在一次使用多个ObjectContext的情况下,您实际上只需要显式附加和分离实体。因为这可能非常混乱,由于在正常的Entity Framework操作过程中发生的隐式附件,我强烈建议新实体框架的人一次只使用一个ObjectContext。如果这样做,则永远不需要显式调用Attach或Detach。
调用,比方说,附件并不会真正影响返回的数据,因为它涉及到缩放器属性。但是如果它引用已经加载到它所附加的上下文中的其他实体,那么这些属性将被预先填充而无需显式加载。也就是说,查询返回的实体已经附加,因此您无法附加它们。