如何在SL应用程序中刷新客户端的EntityCollection?

时间:2013-07-03 15:39:01

标签: silverlight-5.0 wcf-ria-services

假设我有一个EntityCollection说它是Context.Phones。 在客户端,它由WCF Ria服务加载,比如Wcf ria service + EF从DB加载了5部电话。

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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

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

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