0

我有一个使用LocalDataCache将SQL Server 2008 Express数据库同步到客户端数据库(.sdf文件)的应用程序。这很好,我现在正在处理冲突。同步框架处理ClientInsert ServerInsert冲突

我使用这个微软的资源作为指导:How to: Handle Data Conflicts and Errors

冲突,我特别感兴趣的是ConflictType.ClientInsertServerInsert。

我想在客户端和服务器上插入两个冲突的行,我想知道是否有一个SyncFramework的内部方法来做到这一点?

否则我的解决方案如下:

0 - 设置e.Action = ApplyAction.Continue(无变化)。

1 - 将客户端冲突(ID,表名)保存到数组中。

2 - 将服务器冲突(ID,表名)保存到数组中。

3 - 对于客户端冲突阵列中的每个项目,插入到服务器

4 - 对于服务器冲突阵列中的每个项目,插入到客户端

我想知道如果SyncFramework能做到这一点的因为它似乎为我做了一切其他事情?

我期待着您的回复。谢谢

回答

0

我已经解决了这个问题现在通过使用一个GUID的PK而不是一个自动递增的int。这保证了服务器或任何客户端插入的每一行都是唯一的。我知道存在一些缺点,如额外的存储空间和搜索所需的时间,但这是我愿意接受的(我将过滤客户端获得的数据,这将有助于提高性能)。