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

时间:2018-01-15 16:10:57

标签: sql linq join xamarin azure-mobile-services

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

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

我可以将Job表连接到job.JobPackID == JobPack.Id上的JobPack表。

我目前的解决方法是从上面的查询中获取所有作业,然后为每个作业查询JobPack表以查找我想要的项目。但我不认为它非常有效,所以寻找一种更好的方法。

1 个答案:

答案 0 :(得分:1)

  

我可以使用常规SQL查询吗?

AFAIK,使用IMobileServiceSyncTables时无法使用连接查询,并且无法编写自己的SQL查询。根据我的理解,您正在使用Azure移动服务脱机同步,您无法通过单个表查询实现您的目的。要查询Job表中的所有记录和相关的JobPack记录,您需要使用两个查询检索预期记录。或者您可以安装SQLite客户端库并编写自己的SQL查询以进行连接操作。这是一个类似的issue。此外,您可以添加功能请求here