同步框架删除未在客户端上应用

时间:2011-07-20 23:00:15

标签: microsoft-sync-framework

继承我的场景:我担心SqlCeSyncClient应用删除,然后插入,然后更新。我有一种情况,可以从另一个表中取消引用行,然后删除。例如,想象一下:

我有两张桌子;客户和区域,Customer.Area引用具有外键约束的Area.Name

insert into Area values('Australia')
insert into Customer values('customer1','Australia')

- 同步发生。客户获得2个插入。

update Customer set Area = 'New Zealand' where Area = 'Australia'
delete from Area where Name = 'Australia'

- 同步发生。客户获得1次更新,1次删除

SqlCeClientSyncProvider尝试应用delete first ,由于客户端上的参照完整性约束,它无法执行此操作。

我的第一个问题是:为什么微软的男孩们在打破所有参照完整性规则时代码将SyncClient处理为删除?他们不应该删除LAST ????

我的下一个问题是:我已经设法通过检查代码并自己编写整个ApplyChanges方法来反转顺序......但即使我这样做,也不会应用删除。数据集是否存在内部因素,这意味着您无法更改处理顺序?

1 个答案:

答案 0 :(得分:0)

问题不在于操作的顺序(删除,更新,插入,...),而是您放置同义词的顺序......

您应该首先同步区域表,然后在客户表之后。