gpt4 book ai didi

microsoft-sync-framework - 你如何处理 "Sync Framework does not automatically handle the deletion of rows that no longer satisfy a filter condition"

转载 作者:行者123 更新时间:2023-12-04 08:44:30 24 4
gpt4 key购买 nike

http://msdn.microsoft.com/en-us/library/dd918848.aspx

“了解作用域是表和筛选器的组合很重要。例如,您可以定义一个名为 sales-WA 的筛选作用域,它仅包含 customer_sales 表中华盛顿州的销售数据。如果你在同一张表上定义了另一个过滤器,比如sales-OR,这是一个不同的范围。如果你定义了过滤器,请注意Sync Framework不会自动处理不再满足过滤条件的行的删除。例如,如果用户或应用程序更新用于过滤的列中的值,则行从一个范围移动到另一个范围。该行被发送到该行现在所属的新范围,但该行不会从旧范围中删除范围。您的应用程序必须处理这种情况。”

我只是想知道有人可以阐明如何处理“Sync Framework 不会自动处理不再满足过滤条件的行的删除”?

非常感谢。

最佳答案

同步提供程序将(作为配置步骤的一部分)自动创建逻辑删除表和触发器来跟踪行删除。当行未被删除,但以超出范围的方式更新时,自动生成的模式不会将这些记录为删除。它会将它们记录为更新。因此,为了扩展 Microsoft 示例,假设您的应用程序仅将华盛顿数据同步到华盛顿销售代表。一些最初作为华盛顿销售额输入的销售额被更正并移至俄勒冈州。同步框架不知道它应该从华盛顿代表的本地数据库中删除这些现在位于俄勒冈州的记录。

你有几个选项可以解决这个问题:

  • 修改供应工具以生成能够处理这种情况的触发器,而不是生成不能处理这种情况的默认触发器。考虑扩展 SqlSyncScopeProvisioning 来实现这一点。如果操作正确,这可能是最具可扩展性/可扩展性的解决方案。
  • 修改您的应用程序以检测将行移出范围的尝试,并让应用程序删除该行并重新插入它,而不是仅仅更新它(可能在存储过程中)。如果您已经使用存储过程来处理更新,这可能是一个不错的选择。
  • 添加一个后台服务或进程来查找与范围不匹配的记录并将其删除。这可能最终成为最简单的解决方案 - 特别是如果您的应用程序已经部署。

关于microsoft-sync-framework - 你如何处理 "Sync Framework does not automatically handle the deletion of rows that no longer satisfy a filter condition",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8426739/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com