Я пишу приложение Xamarin для Android и используя Azure Mobile SDK. В моей модели данных есть пользователи со списками со списком ListItems. Поскольку пользователи могут иметь доступ к нескольким спискам и спискам, между пользователями и списками, управляемыми через объект UserLists, существует связь «Множество ко многим». Таким образом, User -> UserLists < - Списки < - ListItems. На данном устройстве будут загружены только списки текущего пользователя.Один или несколько хранилищ с Azure Mobile Client SDK - архитектурное руководство
Таким образом, у меня есть 4 объекта на внутреннем сервере, и у меня есть 4 объекта на клиенте. Синхронизация настроена так, что она только вытягивает текущие списки пользователей (и связанные элементы списка). Теперь все 4 объекта управляются одним репозиторием (ListRepository), поскольку эти сущности настолько взаимосвязаны. Это хороший образец? С четырьмя сущностями его уже выходит из рук (только 2 «обновляемы» - списки и списки). Если эта модель будет расти, хранилище станет довольно раздутым.
В качестве альтернативы, наличие нескольких репозиториев (по одному для каждого объекта) и группировка их под одной службой было бы тем, чего можно было бы ожидать, но это означало бы много поездок между службой и различными репозиториями для захвата взаимозависимых объектов. Кроме того, как будет обрабатываться ссылочная целостность, если они не связаны с одним и тем же SyncContext?
Что вы подразумеваете под «репозиториями» и «сущностями»? Какова связь между вашим списком и вашими сущностями и репозиторием? Является ли это фоновой проблемой или проблемой клиента? Или это просто проблема с базой данных? –