我有一个使用LocalDataCache将SQL Server 2008 Express数据库同步到客户端数据库(.sdf文件)的应用程序。这很有效,我现在正在处理冲突。
我使用此Microsoft资源作为指南:How to: Handle Data Conflicts and Errors
我特别感兴趣的冲突是ConflictType.ClientInsertServerInsert。
我想在客户端和服务器上插入两个冲突的行,我想知道SyncFramework是否有内部方法来执行此操作?
否则我的解决方案如下:
0 - 设置e.Action = ApplyAction.Continue(无变化)。
1 - 将客户端冲突(id,tablename)保存到数组中。
2 - 将服务器冲突(id,tablename)保存到数组中。
3 - 对于客户端冲突数组中的每个项目,插入服务器
4 - 对于服务器冲突阵列中的每个项目,插入客户端
我想知道SyncFramework是否可以为我做这件事,因为它似乎为我做了其他一切?
我期待你的回复。感谢
答案 0 :(得分:0)
我现在通过使用GUID而不是自动递增int来修复此问题。这可以保证服务器或任何客户端插入的每一行都是唯一的。我知道存在一些缺点,例如额外的存储空间和搜索所需的时间,但这是我愿意接受的(并且我将过滤客户端获得的数据,这将有助于提高性能)。