gpt4 book ai didi

azure - 如何触发软删除?

转载 作者:行者123 更新时间:2023-12-03 00:51:49 25 4
gpt4 key购买 nike

我刚刚开始使用 Azure 移动服务,不确定我是否了解软删除的工作原理。

我正在开发 Windows 控制台可执行文件,该可执行文件负责填充 Azure 移动数据库,该数据库使用移动服务同步与 iOS 应用程序同步。它使用 Entity Framework 连接到数据库。

我已插入记录并更新记录,并将它们毫无问题地显示在移动设备上。但是当我删除记录时,它们就消失了。

我希望这些表有一个触发器来设置 __deleted 标志,这样删除记录就会从 iOS 应用程序中删除。但这并没有发生。

那么,我该如何删除一条记录呢?

执行正常删除操作是否正确,我需要找出触发器未运行的原因?

或者我应该自己设置 __deleted 标志吗?

或者还有什么完全是我应该做的事情吗?

========附加评论========

如果我理解这一点,如果我在 azure 数据库中的记录上设置 __delete 标志,同步过程将删除移动设备上本地数据库中的匹配记录。

同步完成后会删除记录吗?

或者有什么方法可以让我知道同步已经完成,并且可以安全地删除记录吗?

或者我应该让删除记录累积起来吗?

最佳答案

为了在直接访问数据库时将记录标记为已删除,您需要自己设置__deleted标志。有一个触发器会将 __updatedAt 设置为设置 __deleted 时的时间。这样,当您的移动应用程序查询更新时,它将看到该记录已被删除。

只有当您通过移动服务 REST API 访问数据时,它才会将 HTTP DELETE 转换为设置 __deleted。

编辑以添加对评论的回复

是的,当移动设备同步带有__deleted集的记录时,它会从设备上删除该记录。

保留已删除记录的时间取决于您期望的记录数量、共享这些记录的设备数量以及您可能对保留记录有的其他业务要求。 Adrian 链接的文章提供了示例调度程序,用于在软删除记录后 30 天内删除记录。

本文还建议您让移动应用程序定期清除并从服务器重新下载整个数据集,以确保它不会被服务器上(例如在设备上)永久删除的挥之不去的记录所困扰与软删除期(本例中为 30 天)相比,使用频率非常低。

关于azure - 如何触发软删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33531562/

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