微软同步框架(MSF)入门之二--增量和修改同步方式2012-01-12 代震军 在上一篇文章当中,我通过创建一个SnapShot(快照方式)DEMO演示MSF是如何将远程数据服务器中的数据同步到本地 SQLCE数据库中的。今天这篇文章演示如何使用同步操作向导创建另外一种方式,即“只同步新更改和增量更改”方式。当前这种方式比之前一种"快照方式"要更加便捷,而且因为快照方式是采用整表同步,因此不管是数据是否被修改过,都是把所有数据下载到本地,而今天演示的这种方式是只同步修改或新添加的数据,可以说是一种经济实惠的解决方案。当然,这里并不是说“快照”方式不好,当数据表中的记录频繁变化的话(不稳定)且表中记录少时,这种方式也是一种不错的方案。另外为了“只同步新更改和增量更改”方式,MSF要在远程数据服务器上的相应表格中添加相应的字段用于记录数据的修改和添加情况,并且还会新建一个表用于记录当前表中的记录删除情况(下面会在向导界面中有所体现),而这些都会带来额外的存储开销,所以我个人认为,当数据表中的记录值变化较小(相对稳定)且表中记录量大时,这种方案会是一个不错的选择。好了,开始正文吧。首先要说明的是,如果您看过我的上一篇关于MSF的文章的话,相信您对同步设置向导的整个流程会有个大体上的了解。今天的这种“只同步新更改和增量更改”只是在其“配置供脱机使用的表”窗口中进行如下设置(之前流程设置参见上文即可):

下面解释一下截图中的一些设置,在服务器配置一栏,我们看到有几个下拉列表选项:“使用下列项比较更新”后面的LastEditDate是我们一会要在远程服务器的dnt_posts1表中建立的一个字段,该字段是日期型,用于记录当前数据行的最后一次修改变时间。“使用下列项比较插入”后而的CreationDate是该行数据的插入时间。“将已删除的项移至”后面的dnt_posts_tombstone是当删除该表中的某一行数据时,将该行数据的主键(MSFADO框架向导要求每个表必须有一个主键,当前表主题为pid)."使用下列项比较删除"后面的DetetionDate是在dnt_posts_tombstone表中的一列(字段),用于记录当前dnt_posts1表中的记录(主键)删除的时间。通过上面的设置,系统就会拥有了关于进行数据记录CUD(创建,修改,删除)的时间戳,据此来作为进行数据同步时的依据。