我可以使用Sync Framework同步移动,桌面和Web服务器数据库吗?

时间:2009-04-20 15:54:35

标签: c# sql-server sql-server-ce microsoft-sync-framework syncservices

我正在使用Sync Framework v1(其中包括针对ADO.NET v2的同步服务)和针对移动设备v1的同步服务。

我可以将SQL Compact Edition数据库从移动设备同步到桌面PC上的SQL Express。

我还可以使用WCF将SQL CE数据库从桌面PC同步到Web服务器上的SQL Server数据库。

我希望在停靠时从移动设备同步到桌面,然后让桌面PC与网络服务器同步(桌面计算机上的副本以防万一网络连接不可靠)。

理想情况下,我还是想避免使用SQL Express,因为我想要移动设备。桌面设置尽可能简单。

不幸的是,看起来没有办法将这些部分组合在一起以建立我需要的连接,因为:

  1. 移动设备在PC上同步到SQL Express,我无法从SQL Express同步到SQL服务器。
  2. 同步到SQL服务器必须来自SQL CE,我无法将移动设备同步到桌面上的SQL CE
  3. 这是不可能的,或者是否有大量代码(自定义SyncProviders和手工制作的更新语句等),或者我错过了一些明显的东西?

    感谢您的时间! 标记

2 个答案:

答案 0 :(得分:2)

我对实时应用程序使用相同的基本设置,并且它运行良好。我让移动设备使用Web服务与服务器同步(WCF也可以),我的桌面应用程序有点同步like this,一切都很顺利。

一般来说,让客户端与服务器同步然后与服务器同步是一个坏主意,因为那时你必须管理更多状态,而常用的工具和指南对你没有多大帮助。

我还建议不要使用SQL合并复制,除非你认为自己是管理SQL的专家,因为如果你现在不是一个,那么当你感觉安全使用它时你就会成为一个。< / p>

请注意,如果您愿意花时间和精力制作自己的Sync Framework提供程序,那么您会发现很少有人无法做到。

答案 1 :(得分:1)

我认为'预期'模式是在桌面上使用SQl Express并使用合并复制到服务器。

我不希望您可以在桌面上使用SqlCe作为Sync框架的“服务器”端。其中,SqlCe是单用户,不适用于SyncAgent。即使在您的情况下看起来似乎也可行。

可能有效的方法是将Mobile与服务器同步,将桌面与服务器同步。但我意识到这并不能解决您的连接问题,并且可能会使PC上的副本变得多余。