标题可能不是很清楚,所以这里有详细的问题,我已经配置了sql server数据库并同步到一个精确的sql压缩数据库。
场景:在客户端数据库(sql compact)中存储表数据是: ID名称 0店1 1 store2
在服务器数据库(sql server)中存储表数据是: ID名称 0店1 1 store2
当我在客户端插入新行时,数据ID = 2且Name = store3 并在服务器上插入一个新行,数据ID = 2,Name = store4 并开始同步两个表中的数据变为
ID名称 0店1 1店2 2 store3
虽然我想要的方案是结果
ID名称 0店1 1店2 2店3 3 store4
我的问题是,这是否可能,如果是这样,告诉sql的方法是什么,而不是用另一行更新一行,它应该插入两个新行,任何关于我的技术或代码的建议都是最受欢迎的。
注意:ID是PK列,它是一个标识列。 用于同步的代码是
SyncOrchestrator syncOrchestrator = new SyncOrchestrator();
syncOrchestrator.LocalProvider = new SqlCeSyncProvider("SyncScope", ceCon);
syncOrchestrator.RemoteProvider = new SqlSyncProvider("SyncScope", con);
syncOrchestrator.Direction = SyncDirectionOrder.DownloadAndUpload;
((SqlCeSyncProvider)syncOrchestrator.LocalProvider).ApplyChangeFailed += new EventHandler<DbApplyChangeFailedEventArgs>(Program_ApplyChangeFailed);
SyncOperationStatistics syncStats = syncOrchestrator.Synchronize();
请随时向我询问有关该问题的更多说明。 提前谢谢。
答案 0 :(得分:0)
您的方案实际上会触发插入 - 插入冲突。您可以处理冲突并手动插入另一个冲突的行。
如果您在开发时提前,我建议您更改密钥以避免PK冲突。
答案 1 :(得分:0)
使用像Primary Key这样的UNIQUEIDENTIFIER将为您提供此操作。