Синхронизация 2 реплик с различными типами первичного ключа
Я пытаюсь синхронизировать 2 хранилища данных, используя 2 пользовательских провайдера. Каждый провайдер обрабатывает свое собственное хранилище данных, и каждый провайдер общается с помощью API, что означает, что я не могу получить доступ к базам данных с помощью встроенных провайдеров. Проблема в том, что реплика А использует long
в качестве первичных ключей, но реплика B использует GUIDs
вместо. Когда я синхронизируюсь, я получаю исключение, говорящее:
System.InvalidOperationException: The IsVariable setting of the specified ID instance is not consistent with the requested data type
at Microsoft.Synchronization.SyncId.GetGuidId()
Я понимаю, что агент синхронизации пытается найти ItemMetdata, используя длинный ключ, но на самом деле ItemMetata существует, но он был сохранен в GUID. Как мое приложение может обрабатывать две реплики с двумя разными первичными ключами? Обратите внимание, что я не ориентируюсь на базы данных SQL.