获取Azure脱机同步中某种类型的待处理项目列表

问题描述 投票:2回答:2

我知道我们可以获得待处理项目的数量

PendingChanges = manager.MobileServiceClient.SyncContext.PendingOperations;

但这只能得到待处理项目的总数。如果我需要显示尚未同步某个类型的所有待处理项目的列表,我该怎么办?有没有办法可以做到这一点?

谢谢

azure azure-mobile-services azure-web-app-service
2个回答
1
投票

您可以订阅一个活动来获取每个活动。初始化同步上下文时,请使用:

await client.SyncContext.InitializeAsync(store, StoreTrackingOptions.NotifyLocalAndServerOperations);

您可以订阅商店操作事件,如下所示:

subscription = client.EventManager.Subscribe<StoreOperationCOmpletedEvent>(StoreOperationEventHandler);

你可以在这里获得这个笔记的维基版:https://github.com/Azure/azure-mobile-apps-net-client/wiki/How-to-get-notifications-of-new-records-added-during-Pull-operation


0
投票

我用这样的方法取得了成功:

public async Task<string> GetPendingOperationsAsync()
{
    var query = MobileServiceTableQueryDescription.Parse("__operations", null);
    var jsonResult = await myClient.SyncContext.Store.ReadAsync(query);
    return jsonResult.ToString();
}

我所关心的只是得到一个我可以传递给错误报告的字符串,但如果你想以编程方式检查数据作为JToken树,你可以删除ToString()部分。此外,我相信你可以将查询传递给null调用来过滤你的结果,例如按类型,而不是Parse()

显然,这依赖于Azure移动服务的内部实现,因此使用风险由您自己承担。

© www.soinside.com 2019 - 2024. All rights reserved.