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

Azure Mobile Services PullAsync not all data

在后端使用 Azure 移动服务和 Azure Easy Tables 我想在客户端上获取过滤数据,因为表可能非常大,但对具有自己 ID 的特定用户有用的行不会。我尝试使用

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

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

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

所以,首先要做的是——你应该在服务器上进行安全过滤,而不是客户端。有一些简单的方法可以根据您的规格调整服务器上的过滤器。有关大量示例,请参阅 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()。否则,您将无法设置基本查询。