将 Azure Easy Table 与 WHERE 子句同步

Syncing Azure Easy Table with WHERE clause

我正在开发一个 Xamarin.Forms 应用程序,它使用 Azure 应用程序服务和通过 EasyTables 链接的 SQL 数据库。我已经 运行 样本并在服务器上成功测试查询 tables 等并启用离线同步以便创建 localdb。

我已经创建了商店,定义了 table 并对其进行了同步,但是我希望能够使用 where 子句以某种方式查询它 - 这可能吗?我可以在 client.GetSyncTable 行中添加一个 where 子句吗?

var store = new MobileServiceSQLiteStore("localstore.db");
store.DefineTable<Journey_Stages>();
client.SyncContext.InitializeAsync(store);
tbl_Stages = client.GetSyncTable<Journey_Stages>();

我拉下的一些 tables 会随着时间的推移而增长并且链接到个人用户配置文件,所以我只想要属于该用户的数据,我不想带来每次都下载大量数据,最好让服务器处理,并且只根据用户逐个下载我需要的数据。

谢谢,

史蒂夫

您应该在服务器端添加此过滤逻辑,这样每个用户的数据就不会暴露给所有其他用户。例如,如果您使用 Node.js 后端,请参见 this sample——第 17 行为 table 读取查询添加了一个 WHERE 子句。如果您有 .Net 后端,类似的逻辑将进入您的 table 控制器。

// Configure specific code when the client does a request
// READ - only return records belonging to the authenticated user
table.read(function (context) {
  context.query.where({ userId: context.user.id });
  return context.execute();
});