【问题标题】:How to refresh EntityCollection at client side in SL app?如何在 SL 应用程序的客户端刷新 EntityCollection?
【发布时间】:2013-07-03 15:39:01
【问题描述】:

假设我有一个 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 部手机。 如何解决这个问题? Remove 和 Detach 有什么区别?

【问题讨论】:

    标签: silverlight-5.0 wcf-ria-services


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-22
      • 1970-01-01
      • 1970-01-01
      • 2016-04-14
      • 1970-01-01
      相关资源
      最近更新 更多