有人能指出我使用Sync Framework在c#.net中处理PK冲突错误的正确方向。

我正在尝试在sql server 2008和本地数据缓存数据库(.sdf)之间进行同步,并希望保留服务器和客户端中存在冲突的BOTH行,并且不允许服务器或客户端获胜?

当我向服务器和客户端插入具有相同PK ID的新行时,我收到pk冲突错误。

任何建议都会感激不尽。

由于

有帮助吗?

解决方案 2

这是通过使用PK的GUID而不是自动递增int来解决的。

这可以保证服务器或任何客户端插入的每一行都是唯一的,并且运行良好。

存在一些缺点,例如额外的存储空间和搜索等所需的时间,但这是我愿意接受的(我将过滤客户端获得的数据,这将有助于提高性能)。

感谢大家的帮助。

其他提示

此类问题的一般原则是为自然键设置一列。这个想法是主键唯一地标识表中的行,而自然键唯一地标识该行描述的对象。如果发生冲突,请让服务器获胜并在客户端插入新行。将发布新PK,但自然键保持不变。稍后通过自然键排序很容易找到这些行。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top