У меня есть приложение Xamarin Forms, в котором используется автономная синхронизация мобильных служб Azure. Я хочу использовать соединение для запроса двух таблиц, но похоже, что использование JOIN не поддерживается в IMobileServiceSyncTables. Могу ли я использовать обычный SQL-запрос? Для запроса с одной таблицей я делаю следующее:

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

Я могу присоединить таблицу Job к таблице JobPack на job.JobPackID == JobPack.Id.

На данный момент мой обходной путь - получить все задания из вышеуказанного запроса, а затем для каждого задания запрашивать в таблице JobPack нужный мне элемент. Но я не думаю, что это очень эффективно, поэтому ищу лучший способ сделать это.

0
aritchie 15 Янв 2018 в 19:10

1 ответ

Лучший ответ

Могу ли я использовать обычный SQL-запрос?

AFAIK, вы не могли использовать запрос соединения при использовании IMobileServiceSyncTables, и вы не могли написать свой собственный запрос SQL. Насколько я понимаю, вы используете автономную синхронизацию мобильных служб Azure, вы не смогли достичь своей цели с помощью запроса одной таблицы. Для запроса всех записей из вашей таблицы Job и соответствующей записи JobPack вам необходимо получить ожидаемые записи с помощью двух запросов. Или вы можете установить клиентскую библиотеку SQLite и написать свой собственный SQL-запрос для операции соединения. Вот аналогичная проблема. Кроме того, вы можете добавить свой запрос функции здесь.

1
Bruce Chen 16 Янв 2018 в 05:01