Tag: 蓝色移动服务

Azure应用程序服务 – 脱机同步 – PullAsync事务

我正在使用Xamarin.Forms和Azure应用程序服务的应用程序。 用户必须明确执行数据同步。 当用户开始数据同步时,会执行很多这种方法来从服务器获取当前数据: await this.ISyncTable.PullAsync(queryId, query, cancellationToken).ConfigureAwait(false); 我的问题:应用程序可能会进入不一致的状态。 例如,当用户在数据同步完成之前closures应用程序。 在这种状态下,应用程序不可用。 编辑: 为了使它更容易理解:假设我有一个表“ToDoItem”和“ToDoCategory”。 用户启动数据同步。 数据同步运行,并成功检索所有的ToDoItems。 在下一步中,数据同步将得到ToDoCategories(对PullAsync的另一个调用),但是在此之前用户closures了该应用程序。 现在我有所有的ToDoItems,但没有ToDoCategories。 但是,没有ToDoCategories,该应用程序是不可用的。 这是一个非常简单的例子。 数据结构在实际项目中要复杂得多。 实体之间有很多依赖关系。 logging同步错误/取消并在下一次应用程序启动时提示用户进行另一次同步是无法解决的。 假设在下一个应用程序启动时用户没有互联网连接,并且不能执行数据同步。 我无法locking应用程序单元下一次成功的数据同步。 有没有办法在事务中运行多个PullAsync操作?