wp7 odata v2 dataservicestate保存和恢复方法需要的墓碑示例

时间:2011-01-07 04:49:49

标签: windows-phone-7 odata

我正在寻找一个如何在WP7应用程序中使用新的DataServiceState保存和恢复方法以便逻辑删除datacontext的示例 - 我找不到任何示例,并且我使用的方法导致异常

这样可以正确保存数据上下文

PhoneApplicationService.Current.State["DataContext"] = DataServiceState.Save(this.Model.Entities);

这会尝试在重新激活应用后恢复它

var dc = (PhoneApplicationService.Current.State["DataContext"] as DataServiceState).Restore();

但抛出异常

An item could not be added to the collection. When items in a DataServiceCollection are tracked by the DataServiceContext, new items cannot be added before items have been loaded into the collection.

如果我尝试重新加载我在PhoneApplicationService.Current.State中“直接”(不使用DataServiceState.Save方法)存储的datacontext,则会遇到同样的异常。我找不到关于新ODATA v2 DataServiceState类或示例的任何官方文档。

感谢 迈克尔

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

  

我正在寻找一个如何在WP7应用程序中使用新的DataServiceState保存和恢复方法以便逻辑删除datacontext的示例

你确定吗? First link - 页面底部。

答案 2 :(得分:0)

由于序列化和对象引用问题,存储和检索datacontext很棘手。 MSFT团队正致力于改进DataServiceState。通过将Save()返回的DataServiceState存储在app状态(就像你已经完成的那样),我成功地在WP7应用程序中保存和恢复了上下文。然后在激活时,我首先实例化我的DataServiceClient(其中包含上下文和DataServiceCollection),然后在客户端中调用RestoreData方法并将检索到的DataServiceState传递给它。该方法在DataServiceClient中恢复上下文和DSC。