如何在两个 Azure IMobileServiceSyncTables 上执行 SQL JOIN?

How can I do a SQL JOIN on two Azure IMobileServiceSyncTables?

我有一个使用 Azure 移动服务离线同步的 Xamarin Forms 应用程序。我想使用 Join 来查询两个 table,但 IMobileServiceSyncTables 似乎不支持使用 JOIN。我可以使用常规 SQL 查询吗?对于单个 table 查询,我正在执行以下操作:

IEnumerable<Job> jobs = await jobTable
    .Where(job => job.JobPackId == jobPackId)
    .ToEnumerableAsync();

我可以在 job.JobPackID == JobPack.Id.

将作业 table 加入作业包 table

我目前的解决方法是从上述查询中获取所有作业,然后针对每个作业,在 JobPack table 中查询我想要的项目。但我认为它不是很有效,所以寻找更好的方法。

Can I use a regular SQL query?

AFAIK,使用 IMobileServiceSyncTables 时无法使用连接查询,也无法编写自己的 SQL 查询。据我了解,您正在使用 Azure 移动服务离线同步,您无法通过单个 table 查询实现您的目的。要从您的 Job table 和相关的 JobPack 记录中查询所有记录,您需要使用两个查询来检索您预期的记录。或者您可以安装 SQLite 客户端库并编写您自己的 SQL 连接操作查询。这里有一个类似的 issue. Moreover, you could add your feature request here.