Azure移动服务PullAsync并非所有数据

时间:2017-05-03 17:41:45

标签: azure xamarin xamarin.forms azure-mobile-services

在后端使用Azure移动服务和Azure Easy Table我希望在客户端上获取过滤数据,因为表格可能非常大,但对具有自己ID的特定用户而言,有用的行是不可能的。我试着用

IMobileServiceTableQuery<Messages> query = 
    msgTable.Where(c => c.UserId==_myId);

await msgTable.PullAsync("syncmsg"+_myid, query);

但事实证明,PullAsync仅在下次应用查询,但首次提取所有数据。有没有什么方法可以使用Azure移动服务拉取和存储在本地存储上,只过滤查询数据?

1 个答案:

答案 0 :(得分:3)

所以,首先要做的是 - 你应该在服务器上进行安全过滤,而不是客户端。有一些简单的方法可以根据您的规格调整服务器上的过滤器。有关大量样本,请参阅https://github.com/Azure/azure-mobile-apps-node/tree/master/samples

对于此问题,您构建的查询错误。你想要的是:

var query = msgTable.CreateQuery().Where(c => c.UserId == myId);
await msgTable.PullAsync('mysyncquery', query);

请注意中间的CreateQuery()。没有它,您就不会设置基本查询。