我有一个使用EF4.3 ObjectContext的销售收据表。我正在努力想要拿出收据(EF ObjectContext中的一个实体)并移出上下文并在用户想要它时返回。情况是每当销售收据表单关闭时,上下文就会消失。问题是用户应该能够将其检索回来并添加到当前上下文中。
要分离的代码
Serialize(receipt, savepath)
While Receipt.RECEIPTLINEs.Count > 0
Context.Detach(Receipt.RECEIPTLINEs.First)
End While
Context.Detach(Receipt)
AddNewReceipt()
要附加的代码
Dim receipt = DeSerialize(savepath)
Context.Attach(receipt)
答案 0 :(得分:0)
用户始终可以将其检索回来 - 您将对新上下文执行查询。您只需要知道收据的标识(密钥)。
如果你需要共享收据实例,你必须简单地构建一些基础设施代码,你将继续参考收据,第一个表格将设置它,后面的代码将使用它 - 这不是EF可以为你做的。您只需要在关闭第一个表单之前从上下文中分离收据。
objectContext.Detach(receipt);