Синхронизация таблицы Azure Easy с предложением WHERE - PullRequest
0 голосов
/ 20 июня 2019

Я занимаюсь разработкой приложения Xamarin.Forms, в котором используется служба приложений Azure с базой данных SQL, связанной через EasyTables. Я запустил примеры и успешно протестировал таблицы запросов и т. Д. На сервере и включил автономную синхронизацию, чтобы создать локальную базу данных.

Я создал хранилище, определил таблицу и синхронизировал ее, однако я хочу иметь возможность как-то запросить его с помощью предложения where - возможно ли это? Могу ли я добавить предложение where в строку client.GetSyncTable?

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

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

Спасибо

Steve

1 Ответ

1 голос
/ 25 июня 2019

Вы должны добавить эту логику фильтрации на стороне сервера, чтобы данные каждого пользователя не были доступны всем другим пользователям.См., Например, этот пример , если вы используете серверную часть Node.js - строка 17 добавляет предложение WHERE для запроса чтения таблицы.Если у вас есть бэкэнд .Net, аналогичная логика будет в вашем контроллере таблицы.

// 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();
});
...