2009-02-24 77 views
7

我刚刚进入Microsoft Sync Framework。使用SqlSyncAdapterBuilder和SqlServerChangeTracking,将本地SQL CE 3.5数据库与远程SQL Server 2008同步很容易。使用MS Sync Framework同步两个SQL CE Dbs

不幸的是,同步两个SQL CE 3.5数据库看起来并不那么容易...
文档非常稀少,我不知道如何从这里开始。

我的具体情况如下所示:

  • 我有一个中央SQL Server 2008的
  • 多台客户机连接到该服务器(其中有些只是部分)。
  • 那些(部分连接的)客户端正在使用同一数据库上的多个应用程序(可能同时运行)。

将客户端与中央服务器同步应该没问题。在离线客户机上同步多个应用程序是我想过使用多个SQL CE数据库(其中一个作为服务器,另一个作为每个应用程序实例)。我真的很喜欢在将客户端与服务器同步时以及在客户端上同步多个应用程序时能够使用相同的冲突解决机制。在每个客户端上安装SQL Server 2008 Express是不行的。

有没有人有同步两个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。好消息是包装可能更容易。

祝你好运!