我正在尝试实现从服务器到客户端的单向同步,两者都使用Sync Framework 2.1运行SQLExpress 2008。我在初始同步时遇到了麻烦。
服务器上定义了两个范围:
Scope1包含表A,B,C和Scope2包含表B,C,D
在初始同步之前,客户端数据库包含表A,B,C和D(使用脚本导入),每个表都是空的。已使用默认配置设置使用服务器的Scope1和Scope2范围信息配置数据库。
首次同步Scope1时,一切都会成功。同步Scope2时,正在下载共享表(B,C)的每条记录并将其报告为LocalInsertRemoteInsert
冲突。
有没有办法避免这种行为?在Scope1完成同步后,Sync Framework是否应该知道表B和C现在是最新的?
答案 0 :(得分:1)
您有重叠的范围,其他范围中包含的数据与另一个范围内的数据相同。
有关同步内容的信息存储在作用域级别,第一个作用域上同步的内容不为第二个作用域所知,反之亦然。
当您同步范围1时,它会下载数据并更新自己同步的同步知识。当您同步范围2时,它不知道范围1已同步,因此它会再次下载它们。
我将B和C放在范围1上并在A上创建范围2,在范围3上创建范围2.所以你只需要同步B和C一次。