2009-02-24 4 views
7

Я просто работаю в Microsoft Sync Framework. Сложно синхронизировать локальную базу данных SQL CE 3.5 с удаленным SQL Server 2008 с использованием SqlSyncAdapterBuilder и SqlServerChangeTracking.Использование MS Sync Framework для синхронизации двух SQL CE Dbs

К сожалению, синхронизация двух баз данных SQL CE 3.5 выглядит не так просто ...
Документация очень редкая, и я не знаю, как начать работу здесь.

Мой конкретный сценарий выглядит следующим образом:

  • У меня есть один центральный SQL Server 2008.
  • Множественные клиенты подключены к этому серверу (некоторые из них лишь частично).
  • Эти (частично подключенные) клиенты используют несколько приложений (возможно, работают одновременно), работающих на одной базе данных.

Синхронизация клиентов с центральным сервером не должна быть проблемой. Синхронизация нескольких приложений на автономном клиенте - это то место, где я думал об использовании нескольких баз данных SQL CE (один как сервер и один для каждого экземпляра приложения). Я бы зарекомендовал себя как использовать те же механизмы разрешения конфликтов при синхронизации клиентов с сервером, а также при синхронизации нескольких приложений на клиенте. Установка SQL Server 2008 Express на каждого клиента - это не-go.

Есть ли у кого-нибудь опыт синхронизации двух баз данных SQL CE?

ответ

5

Sync Framework 2.0 позволяет синхронизировать базы данных SQL Server Compact Edition.

SqlCeSyncProvider используется для синхронизирует SQL Server Compact баз данных.

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

1

Для всех команд ado.net требуется поставщик-клиент и поставщик сервера.

К сожалению, нет сервера SqlCe SyncProvider из коробки с текущей версией фреймворка. Это означает, что вам нужно подклассифицировать DBServerSyncProvider и обернуть клиент SqlCe SyncProvider.

См. this article для примера о том, как это сделать с помощью sql express.

Это та же концепция, что и вы будете обертывать SqlCeClientProvider. Хорошей новостью является то, что упаковка может быть проще.

Удачи вам!

Смежные вопросы