Использование MS Sync Framework для синхронизации двух баз данных SQL CE - PullRequest
7 голосов
/ 24 февраля 2009

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

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

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

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

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

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

Ответы [ 2 ]

5 голосов
/ 31 октября 2009

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

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

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

1 голос
/ 03 марта 2009

Для всех синхронизаций ado.net требуется поставщик клиента и поставщик сервера.

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

См. в этой статье для примера того, как сделать это с помощью SQL Express.

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

Удачи!

...