技术开发 频道

处理微软MSF同步框架中的数据冲突

    使用ConflictResolver解决客户端冲突

    如果指定一种解决方案不能满足你的需要,并且你想精简你的代码,MSF在SqlCeClientSyncProvider上提供了一个附加属性ConflictResolver,你可以单独设置它的属性为下面三个值的一个来解决所有五种冲突:

    ◆ ClientWins

    ◆ ServerWins

    ◆ FireEvent

    默认情况下,最后一个选项FireEvent是默认值。

    设置ConflictResolver的代码可以和ApplyChangeFailed处理程序一起添加到客户端SyncProvider的构造器中:


    在上面的例子中,我们总是允许更新胜过删除,我们通过在为ApplyChangeFailed事件定义的处理程序中自定义业务逻辑让更新冲突得到解决。

    小结

    所有数据同步解决方案都需要数据冲突解决方案,使用微软的同步框架(MSF),它有一套内置的冲突解决机制,让你可以定义简单的冲突解决方案(ConflictResolver),也可以定义复杂的冲突的解决方案(通过ApplyChangeFailed事件自定义业务逻辑解决方案)。

0
相关文章