我在服务器(主)数据库上使用MS Sync Framework在同步过程中遇到了冲突(主要是INSERT语句,其中一个是UPDATE)。
示例:
The INSERT statement conflicted with the FOREIGN KEY constraint "FK_YX_Y". The conflict occurred in database "ZZZ", table "dbo.Y", column 'Id'.
在这种情况下,表X和Y之间存在多对多关系。它们被添加到同一个同步范围(例如,“sync1”)。多对多连接表也添加到同一范围:
sync1.Tables.Add(X);
sync1.Tables.Add(Y);
sync1.Tables.Add(YX);
我总是在插入顺序中添加它们(例如,父级第一,子级接下来)。在YX多对多连接表开始同步的时候,似乎不知何时Y表没有完全同步,这违反了约束。
我在同步设置期间创建了本地数据库和远程服务器上的所有FK,PK等。
我看到类似的问题不仅在五人之间,而且在一对多的关系上。
冲突不是一直发生,而是时不时发生。但是,仍然有很多。他们中的一些人在没有任何明确行动的情况下不再出现。
认为这可能是由于表的大小(YX - 2.5M记录,Y - 170K,X - 570K),我试图批量同步并在syncProviders上设置大的超时,但这似乎不是帮助过。
有一些基本问题,我还没想到。