【问题标题】:Microsoft Sync Framework 4.0 how to handle foreign key constraints on a syncMicrosoft Sync Framework 4.0 如何处理同步的外键约束
【发布时间】:2011-06-28 16:27:31
【问题描述】:

我正在为 ipad 构建一个离线/在线网络应用程序。对于同步,我使用的是 Microsoft Sync Framework 4.0。我遇到的一个问题是同步过程中的外键关系。例如:

我有一个日程表和面试表。面试与日程表有外键关系。当我添加时间表和采访然后尝试同步时,有时会在新时间表之前添加新采访,这会导致冲突,因为采访所引用的外键尚不存在。

我已阅读有关同步组的信息,但我不确定如何实施它们,或者它们是否能解决我的问题。

有什么想法吗?

提前谢谢...

【问题讨论】:

    标签: html microsoft-sync-framework


    【解决方案1】:

    检查您在配置范围时是否在子表(采访)之前添加了父表(计划)

    【讨论】:

    • 如何确保我实际上是先添加父表。我正在使用同步服务实用程序 UI,但我没有看到在配置期间订购表的任何内容。我真的需要编辑配置 xml 吗?
    【解决方案2】:

    我进一步查看了 Sync Service Utility UI,在生成配置文件的过程的第 4 步中,您实际上可以指定表的顺序。我认为这将解决我的外键问题。感谢您为我指明正确的方向 JuneT。

    【讨论】:

    • 请注意,插入应该是父对子,但删除应该是子对父。 (关于他们的 fk 关系)
    • 哦:对于 DbServerSyncProvider,Microsoft.Sync 会反转 DbServerSyncProvider.ApplyChangesInternal 中删除的表顺序。
    • Microsoft.Sync DbServerSyncProvider ApplyChanges 排序:删除然后插入然后更新。在我看来,这个顺序应该是插入然后更新然后删除。如果插入然后删除同一行怎么办? (这可能会被客户端提供者端的 enumerate-changes 逻辑过滤掉)如果您执行更新删除对父级的最后一个引用然后删除父级怎么办?同步因 FK 违规而失败。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多