我正在为我的一个客户端开发一个同步数据库应用程序,我已经完成了同步,但现在我卡在了我不想同步的部分 完整的表 我只想通过同步框架同步动态选择的记录
在客户端使用sqlce
任何提供一些帮助的好链接也会更可取
我正在服务器上同步一些类似以下内容的内容
public SyncContext GetChanges(SyncGroupMetadata groupMetadata, SyncSession syncSession)
{
return serverSyncProvider.GetChanges(groupMetadata, syncSession);
}
public SyncContext ApplyChanges(SyncGroupMetadata groupMetadata, DataSet dataSet, SyncSession syncSession)
{
return serverSyncProvider.ApplyChanges(groupMetadata, dataSet, syncSession);
}
您可以添加筛选器来限制同步的行。但是,同步框架不支持动态筛选。同步框架根据自上次同步以来更改的内容的增量同步进行同步。
例如,假设您有一个客户表,并且您允许用户选择要同步的客户。
您很可能会将选择用于同步的客户存储在另一个表中,例如 SelectedCustomer,它将存储用户 ID 和客户 ID。
当用户在其选择中添加或删除客户时,您将更新选定客户。但是,当您同步客户表时,除非自上次同步以来特定客户记录已更改,否则您将不会获得任何内容。即使将客户添加到特定用户,也不会更新实际客户记录,不会更新,也不会检测到任何更改。
JuneT ;)写的文章
同步框架预配
转到"基于参数的筛选器"部分
JuneT的回答是绝对正确的。诀窍是,如果您选择同步一行,请在同步之前先更新该行(以便跟踪表将该行记录为更新)。
更新选定客户是不够的,跟踪记录是同步的,但真实的不是。我必须创建一个插入/更新触发器来更新主跟踪记录中的local_create_peer_timestamp。