【问题标题】:Does IMobileServiceSyncTable<T>.PullAsync pull items that are already in the local table?IMobileServiceSyncTable<T>.PullAsync 是否拉取已经在本地表中的项目?
【发布时间】:2014-11-05 18:45:55
【问题描述】:

我可以在有时间的时候测试一下,但我想我会问这个问题,以防其他人有同样的疑问。

当您在IMobileServiceSyncTable&lt;T&gt; 上发出PullAsync 时,该表是否足够智能,可以将服务器上的__updatedAt__version 列与本地数据进行比较,因此它不会提取已经存在的项目在本地存储中?如果是,那么我可以发出 pull 而不用担心多余 数据传输。

【问题讨论】:

    标签: sync azure-mobile-services offline-mode


    【解决方案1】:

    PullAsync,当传递一个查询键时,将进行增量更新,这意味着它将获取自上次调用 Pull 以来修改的所有记录。 (在 __updatedAt 列上使用过滤器)版本将仅用于单个操作(更新/删除/等)以检测冲突。

    如果没有查询键,它将提取与给定查询匹配的所有记录。

    【讨论】:

    • 这可以在文档中找到,但它并没有明确回答问题。如果有多个设备(和用户),每个设备/用户的 queryID 是否应该不同,或者 API 是否足够聪明来管理它?这是一个非常基本的问题,在任何地方都没有正确的答案......
    • queryid 只是设备端的概念,因此不需要跨设备创建真正唯一的密钥。在应用程序的实例中,您的键应该基于查询过滤键是唯一的。因此,如果您只想要所有记录,或者只对该表使用 1 个查询,那么您可能只有 1 个键“all”。如果您从记录中提取 2 种类型的查询,例如排行榜
    • 如果您在一张表上有 2 个不同的查询(一个用户 = X,一个用户 = Y),那么每个查询都应该有自己的键。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多