我正在寻找一个如何在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类或示例的任何官方文档。
感谢 迈克尔
答案 0 :(得分:1)
答案 1 :(得分:1)
你确定吗? First link - 页面底部。我正在寻找一个如何在WP7应用程序中使用新的DataServiceState保存和恢复方法以便逻辑删除datacontext的示例
答案 2 :(得分:0)
由于序列化和对象引用问题,存储和检索datacontext很棘手。 MSFT团队正致力于改进DataServiceState。通过将Save()返回的DataServiceState存储在app状态(就像你已经完成的那样),我成功地在WP7应用程序中保存和恢复了上下文。然后在激活时,我首先实例化我的DataServiceClient(其中包含上下文和DataServiceCollection),然后在客户端中调用RestoreData方法并将检索到的DataServiceState传递给它。该方法在DataServiceClient中恢复上下文和DSC。