我有一个表控制器,它有一种方式同步(只有获取,因为没有任何移动更新)。所以当我第一次执行PullAsync时,它已经提取了整个数据,因为我的Update At字段对所有记录都有相同的时间戳。现在第二次我只想做增量Pull(注意我确实将名称值传递给PullAsync以启用增量同步)。
但问题是,它再次检索整个数据,因为在更新时没有更新时间戳(因为表控制器中没有更新方法,因为它是单向同步 - Azure到移动设备)。如果在所有Update At值都是相同时间戳的情况下没有更新,我怎么能省略再次提取数据?问题与下面链接中提到的相同。我们是否还需要进行一次记录更新才能解决此问题?
先谢谢
答案 0 :(得分:1)
如果在所有Update At值都是相同时间戳的情况下没有更新,我怎么能省略再次提取数据?问题与下面链接中提到的相同。我们是否还需要进行一次记录更新才能解决此问题?
我已检查此问题是否仍然存在。 AFAIK,PullAsync
操作将提取50条记录(MaxPageSize默认为50),然后开始事务以插入/更新检索到的实体,然后使用最新更新的时间戳更新本地__config
表,然后尝试检索下一页记录并再次执行上述处理。
注意: id
列的格式如下deltaToken|{table-name}|{query-id}
。
拉动操作请求如下:
https://<app-name>.azurewebsites.net/tables/<table-name>?$filter=(updatedAt ge datetimeoffset'2018-02-21T08:58:45.446Z')&$orderby=updatedAt&$skip=0&$top=50&__includeDeleted=true
我假设您可以查询本地__config
表以检索最新的updatedAt值或查询相关的本地表以检索最新的updatedAt值,然后向当前updatedAt添加一个小的时间间隔并明确指定使用增量拉操作时,使用之前的updatedAt过滤UpdatedAt
属性。