0

假设我有一个 EntityCollection 说它是 Context.Phones。在客户端,它由 WCF Ria Service 加载,假设有 5 部手机由 Wcf ria service+EF 从 DB 加载。

然后在客户端,我发布了 Context.Phones.Detach(phone)。然后调用 wcf ria 服务重新加载数据。没关系, 5 个电话记录将返回 Context.Phones。

但是如果我在客户端执行 Context.Phones.Remove(phone),然后使用 wcf ria 服务重新加载数据,除非我重新运行整个 SL 应用程序,否则 Context.Phones 总是只有 4 部手机,而不是 5 部手机。如何解决这个问题?删除和分离有什么区别?

4

1 回答 1

0

要刷新实体,您可以在重新加载实体时使用 LoadBehavior.RefreshCurrent:

mycontext.Load(mycontext.GetPhonesQuery,
               LoadBehavior.RefreshCurrent,
               AddressOf MyCallback,
               Nothing)

另一种方法:如果不绑定到您当前的上下文,您可以随时创建一个新的上下文并使用它。

Detach 不会将您的实体(及其对象图)标记为删除。它用于将您的实体从一个上下文移动到另一个上下文。

删除会将您的实体标记为删除。

于 2013-07-04T17:31:27.100 回答