Итак, мне нужно синхронизировать два хранилища данных, одним из которых является база данных SQL, и я чувствовал, что для этой стороны было естественным использовать встроенный поставщик.Но, к сожалению, у меня начались проблемы, потому что SqlSyncProvider
не использует ChangeDataRetriever
и NotifyingChangeApplier
, а вместо этого общается через некоторый объект DbSyncContext
.Поэтому мне пришлось извлечь из SqlSyncProvider
и переопределить в основном методы GetChangeBatch
и ProcessChangeBatch
, чтобы они стали совместимыми с остальной частью Sync Framework.
Но проблема в том, что я считаю, что что-то упускаю в этой трансформации.В результате, когда я создаю строку в базе данных SQL, синхронизируюсь с другим хранилищем и удаляю строку (или обновляю) в другом хранилище, после синхронизации изменения не отображаются в базе данных SQL.Вероятно, проблема вызвана хранимой процедурой массового удаления, которая фильтрует таблицу удаления и отделяет строки, созданные локально, от строк, созданных в другом месте.
Кто-нибудь знает, что может вызвать эту проблему?Мне бы очень хотелось увидеть примеры или документацию по синхронизации между поставщиком SQL и пользовательским поставщиком.