使用ConflictResolver解决客户端冲突
如果指定一种解决方案不能满足你的需要,并且你想精简你的代码,MSF在SqlCeClientSyncProvider上提供了一个附加属性ConflictResolver,你可以单独设置它的属性为下面三个值的一个来解决所有五种冲突:
◆ ClientWins
◆ ServerWins
◆ FireEvent
默认情况下,最后一个选项FireEvent是默认值。
设置ConflictResolver的代码可以和ApplyChangeFailed处理程序一起添加到客户端SyncProvider的构造器中:

在上面的例子中,我们总是允许更新胜过删除,我们通过在为ApplyChangeFailed事件定义的处理程序中自定义业务逻辑让更新冲突得到解决。
小结
所有数据同步解决方案都需要数据冲突解决方案,使用微软的同步框架(MSF),它有一套内置的冲突解决机制,让你可以定义简单的冲突解决方案(ConflictResolver),也可以定义复杂的冲突的解决方案(通过ApplyChangeFailed事件自定义业务逻辑解决方案)。